如何将pyspark数据帧写入不同的hadoop集群
Posted
技术标签:
【中文标题】如何将pyspark数据帧写入不同的hadoop集群【英文标题】:How to write pyspark dataframe to different hadoop cluster 【发布时间】:2020-06-03 13:33:16 【问题描述】:我正在尝试备份从 pyspark 程序写入 hadoop 集群的数据。我可以这样做吗?
现在,我正在采购一个 hadoop 集群客户端配置文件,该配置文件在环境变量中设置 Hadoop 集群详细信息。然后我创建了一个 spark 会话以从 RDD
创建一个数据框。
# write to cluster 1 (current cluster)
df.write.format('csv').save('mydata')
# write to cluster 2 (backup cluster)
df.write.format('csv').save('backup_1/mydata')
我知道这听起来很奇怪。但这有可能吗?如果没有,我该怎么做
【问题讨论】:
你试过文件路径HDFS名称节点地址hdfs://first.cluster.namenode:8020/mydata
和hdfs://second.cluster.namenode:8020/backup_1/mydata
吗?
【参考方案1】:
这里是一个例子,为什么你不会像下面这样以 parquet 格式保存/存储你的文件 (cvs):
df.write.mode('overwrite').parquet("/backup_1/mydata.parquet")
使用你的 spark 会话后,如下所示:
df_readed = urSparkSession.read.parquet("/backup_1/mydata.parquet")
最好的问候,
阿巴卡尔
【讨论】:
以上是关于如何将pyspark数据帧写入不同的hadoop集群的主要内容,如果未能解决你的问题,请参考以下文章
PySpark:如何将具有 SparseVector 类型的列的 Spark 数据帧写入 CSV 文件?