如何将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/mydatahdfs://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 中写入数据帧的自定义文件名

PySpark:如何将具有 SparseVector 类型的列的 Spark 数据帧写入 CSV 文件?

使用 PySpark 写入数据帧时出错

Pyspark 将数据帧结果写入文本文件

如何在使用转义或引号在pyspark中的文件中写入数据帧时获得完全匹配? [复制]

将 PySpark 数据帧写入分区 Hive 表