如何解决pyspark遍历gcs文件并写入hdfs:是RDD还是Dataframe?
尝试遍历一堆gcloud在云中存储的文件:
gs://bucket_1/files_abcd_20200922_1.csv.gz
gs://bucket_1/files_abcd_20200922_2.csv.gz
gs://bucket_1/files_abcd_20200922_3.csv.gz...
,结果spark.read可以使用通配符加载多个文件。因此,我们有两种选择,使用rdd:
rdd_gst = sc.textFile("gs://bucket_1/files_abcd_20200922*.csv.gz")
rdd_gst2 = rdd_gst.map(lambda x: x.replace('\\r',' '))
rdd_gst = rdd_gst2.map(lambda x: x,None)
或
df_gst = sc.read.option("header","true").csv("gs://bucket_1/files_abcd_20200922*.csv.gz")
由于防火墙的限制,需要在单个节点(16核/ 128GB)上不运行线程而运行它,因此任何人都可以提出迭代处理所有文件的最佳方法(每个文件最大为32gig),然后有效地进行写入作为hdfs的兽人?使用分区可能是必要的。
尝试写入单个文件,但抛出内存不足错误,我觉得必须有更好的方法来解决这个问题。 任何帮助将不胜感激!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。