Scala Spark如何在写入时/写入后为数据帧指定结果文件的数量
我看到了几个关于将单个文件写入hdfs的q/a,似乎使用Scala Spark如何在写入时/写入后为数据帧指定结果文件的数量,scala,apache-spark,dataframe,hdfs,Scala,Apache Spark,Dataframe,Hdfs,我看到了几个关于将单个文件写入hdfs的q/a,似乎使用coalesce(1)就足够了 例如, 但如何指定保存操作后将写入的文件的“确切”数量 所以我的问题是, 如果我有数据帧,它由100个分区组成,当我进行写操作时,它会写100个文件吗 如果在调用repartition(50)/coalsesce(50)后进行写操作时,数据帧由100个分区组成,它会写50个文件吗 spark中是否有一种方法允许在将数据帧写入HDFS时指定生成的文件数 谢谢输出文件的数量通常等于写入任务(分区)的数量。在正常情
coalesce(1)
就足够了
例如,
但如何指定保存操作后将写入的文件的“确切”数量
所以我的问题是,
如果我有数据帧,它由100个分区组成,当我进行写操作时,它会写100个文件吗
如果在调用repartition(50)/coalsesce(50)
后进行写操作时,数据帧由100个分区组成,它会写50个文件吗
spark中是否有一种方法允许在将数据帧写入HDFS时指定生成的文件数
谢谢输出文件的数量通常等于写入任务(分区)的数量。在正常情况下,它不能更小(每个编写器编写自己的部分,多个任务不能写入同一个文件),但如果格式具有非标准行为或使用了
partitionBy
,它可以更大
通常
如果我有数据帧,它由100个分区组成,当我进行写操作时,它会写100个文件吗
对
如果我在调用repartition(50)/coalsesce(50)后进行写操作时,数据帧由100个分区组成,它会写50个文件吗
是的
spark中是否有一种方法允许在将数据帧写入HDFS时指定生成的文件数
否。输出文件的数量通常等于写入任务(分区)的数量。在正常情况下,它不能更小(每个编写器编写自己的部分,多个任务不能写入同一个文件),但如果格式具有非标准行为或使用了
partitionBy
,它可以更大
通常
如果我有数据帧,它由100个分区组成,当我进行写操作时,它会写100个文件吗
对
如果我在调用repartition(50)/coalsesce(50)后进行写操作时,数据帧由100个分区组成,它会写50个文件吗
是的
spark中是否有一种方法允许在将数据帧写入HDFS时指定生成的文件数
否。请注意,我们可以设置自Spark 2.2以来的
maxRecordsPerFile
。使用此选项,文件的数量可能不同于分区的数量()注意,我们可以设置自Spark 2.2以来的maxRecordsPerFile
。使用此选项,文件的数量可能不同于分区的数量()
df.coalesce(1).write.mode("overwrite").format(format).save(location)