如何使用pyspark ETL配置输出文件大小?

问题描述 投票:0回答:1

我有一些 ETL 代码,我读取 csv 数据将它们转换为数据帧,通过利用 pyspark RDD(弹性分布式数据集)的地图对数据进行某些转换后组合/合并数据帧。最后,当我将结果保存为输出时文件,它将输出保存到多个文件中。有没有办法,我可以配置它可以输出多少个文件或指定每个文件的大小?这样我就可以在每个文件中打印一定数量的行/行?

import pandas as pd

# Read the CSV files
df_one = pd.read_csv('one.csv')
df_two = pd.read_csv('two.csv')

# Merge on the truncated ID
df_combined = pd.merge(df_one , df_two , how='inner', left_on='truncated_id', right_on='id')

...

merged_rdd = merged.rdd.map(some_function)

merged_rdd.saveAsTextFile('/output.json')

python pandas pyspark aws-glue
1个回答
0
投票

使用

df.iloc[n:m]
可以控制行数 (pandas.Dataframe.iloc)。这样做一个循环将有助于您的每个 CSV 具有相同的行数。 尽管要计算每个文件的大小,您需要考虑每个单元格的值表示形式作为字符串的长度,加上可能的双引号包装和转义字符,不要忘记行结尾,当然还有标题。

© www.soinside.com 2019 - 2024. All rights reserved.