首页 > 解决方案 > 将 numpy 数组转换为 pyspark 中的 DataFrame 以导出为 csv

问题描述

我在 pyspark 中有一个 numpy 数组,我想将其转换为 DataFrame,以便我可以将其写为 csv 以查看它。

我最初从 DataFrame 中读取数据,但是我必须转换为数组才能使用numpy.random.normal(). 现在我想把数据转换回来,这样我就可以把它写成 csv 来查看它。

我直接在阵列上尝试了以下

zarr.write.csv("/mylocation/inHDFS")

但是我收到以下错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'write'

有任何想法吗?

标签: arraysnumpydataframepyspark

解决方案


Numpy 数组和 Spark Dataframe 是完全不同的结构。第一个是本地的,没有列名,第二个是分布式的(或本地模式下的分布式就绪),并且具有强类型的列。

我建议首先将 numpy 数组转换为 Pandas DF,如下所述:从 Numpy 数组创建 Pandas DataFrame:如何指定索引列和列标题?,然后使用以下方法将其转换为火花之一:

df = spark.createDataFrame(pandas_df)
df.write.csv('/hdfs/path')

推荐阅读