Apache spark pyspark遍历gcs文件并写入hdfs:RDD还是数据帧?

Apache spark pyspark遍历gcs文件并写入hdfs:RDD还是数据帧?,apache-spark,hadoop,pyspark,apache-spark-sql,rdd,Apache Spark,Hadoop,Pyspark,Apache Spark Sql,Rdd,尝试在云中的一组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/fil

尝试在云中的一组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)

由于防火墙的限制,需要在单个节点(16核/128GB)上运行它,因此有谁能建议迭代处理所有文件的最佳方法(每个文件的最大容量为32gig),然后如何将orc高效地写入hdfs?可能需要使用分区

尝试编写单个文件,但抛出内存不足错误,我觉得必须有更好的方法来解决这个问题。
任何帮助都将不胜感激

当你说内存不足错误时,是gc开销吗?
df_gst = sc.read.option("header", "true").csv("gs://bucket_1/files_abcd_20200922*.csv.gz")