0
我对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)
那么结果如预期火花数据帧。但如果你现在做
inner_pandas_df = pd.DataFrame.from_dict({"W":["X","Y","Z"]})
outer_pandas_df["C"] = [inner_pandas_df, inner_pandas_df, inner_pandas_df]
而做出这样
inner_schema = StructType([
StructField("W", StringType(), True)
])
outer_schema = StructType([
StructField("A", IntegerType(), True),
StructField("B", IntegerType(), True),
StructField("W", ArrayType(inner_schema), True)
])
架构那么这个失败:
sqlctx.createDataFrame(outer_pandas_df, schema=outer_schema)
与对数组类型不接受大熊猫dataframes相关的错误。我没有确切的错误。
是我想要做的可能吗?