필자는 pyspark/bigdata에 조금 새로운 것이므로 나쁜 생각 일 수 있습니다. 그러나 몇 백만 개의 개별 CSV 파일이 각각 메타 데이터와 연관되어 있습니다. 모든 메타 데이터 필드에 대한 열이있는 pyspark 데이터 프레임을 원하지만 각 메타 데이터 집합과 관련된 (전체) CSV 파일의 항목이있는 열도 필요합니다.pyspark에 데이터 프레임의 열을 가질 수 있습니까?
저는 지금 직장에 없지만 거의 정확한 코드를 기억합니다. 나는
outer_pandas_df = pd.DataFrame.from_dict({"A":[1,2,3],"B":[4,5,6]})
## A B
## 0 1 4
## 1 2 5
## 2 3 6
같은 장난감 예를 들어 뭔가를 시도 그리고 당신은
outer_schema = StructType([
StructField("A", IntegerType(), True),
StructField("B", IntegerType(), True)
])
outer_spark_df = sqlctx.createDataFrame(outer_pandas_df, schema=outer_schema)
할 경우 다음 결과는 예상대로 스파크 dataframe이다. 그러나 지금 당신은
inner_schema = StructType([
StructField("W", StringType(), True)
])
outer_schema = StructType([
StructField("A", IntegerType(), True),
StructField("B", IntegerType(), True),
StructField("W", ArrayType(inner_schema), True)
])
같은 스키마가 다음이 실패
inner_pandas_df = pd.DataFrame.from_dict({"W":["X","Y","Z"]})
outer_pandas_df["C"] = [inner_pandas_df, inner_pandas_df, inner_pandas_df]
을 그리고 만들 경우 :
sqlctx.createDataFrame(outer_pandas_df, schema=outer_schema)
을 팬더 dataframes을 수락하지 ArrayType 관련된 오류와 함께. 정확한 오류가 없습니다.
내가 할 수있는 일이 가능합니까?