我们有glue,它使用pyspark load()从s3存储桶读取csv文件。
read_s3_files = spark.read.format("csv") \
.option("header", True) \
.option("ignoreLeadingWhiteSpace", True) \
.option("ignoreTrailingWhiteSpace", True) \
.load(s3_file_path)
目前我们面临两个问题 -
我们如何改进glue csv pyspark处理?
您可以通过分割输入数据来使用并行性
如果 CSV 文件很大,请确保将其拆分为多个文件。如果存在多个分区或较小的文件,AWS Glue 会并行处理文件。
read_s3_files = spark.read.format("csv") \
.option("header", True) \
.option("ignoreLeadingWhiteSpace", True) \
.option("ignoreTrailingWhiteSpace", True) \
.option("multiLine", True) \
.load("s3://bucket/prefix/") # Folder path, not a single file
您还可以根据您的文件和集群动态调整分区数量:
read_s3_files = read_s3_files.repartition(200) # Adjust based on your cluster size