arrays - 将 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'
有任何想法吗?
解决方案
Numpy 数组和 Spark Dataframe 是完全不同的结构。第一个是本地的,没有列名,第二个是分布式的(或本地模式下的分布式就绪),并且具有强类型的列。
我建议首先将 numpy 数组转换为 Pandas DF,如下所述:从 Numpy 数组创建 Pandas DataFrame:如何指定索引列和列标题?,然后使用以下方法将其转换为火花之一:
df = spark.createDataFrame(pandas_df)
df.write.csv('/hdfs/path')
推荐阅读
- node.js - 拒绝后在 catch 块中查询
- python - 使用 py2neo 获取最短路径中的节点
- python - 拟合大数据时如何解决sklearn Memory Error?
- c++ - 如何比较#define定义的字符串和整数?
- amazon-web-services - 收到来自 Lambda 的无效响应:无法构造 IntentResponse 的实例
- java - 如何在 WebClient 响应中提取 httpHeader?
- sql-server - 无法从 Windows Server 2016 登录 SQLExpress
- javascript - 我正在尝试从 API 获取 JSON 文件
- java - 我用于拍照和获取缩略图的简单代码不起作用
- python - 如何创建一个列来计算另一列中出现的次数并且不聚合python中的行?