Spark 中预测给定 hdfs 数据集中记录数的足够方法
Sufficient way in Spark to predict number of records in given hdfs dataset
我有大数据集要加载。
我想根据记录数预先计算分区数。
如果有足够的方法来做到这一点?
这个想法很糟糕吗?
你要么
- 运行一个
df.count
,可能还蛮贵的
- 使用
df.inputFiles
,然后使用 Hadoop 文件系统 API 计算文件大小(参见 https://html.developreference.com/article/17377954/get+size+of+parquet+file+in+HDFS+for+repartition+with+Spark+in+Scala)
- 或(我推荐的解决方案):设置
spark.sql.files.maxPartitionBytes
来控制将多少字节打包到 1 个分区
我有大数据集要加载。 我想根据记录数预先计算分区数。 如果有足够的方法来做到这一点? 这个想法很糟糕吗?
你要么
- 运行一个
df.count
,可能还蛮贵的 - 使用
df.inputFiles
,然后使用 Hadoop 文件系统 API 计算文件大小(参见 https://html.developreference.com/article/17377954/get+size+of+parquet+file+in+HDFS+for+repartition+with+Spark+in+Scala) - 或(我推荐的解决方案):设置
spark.sql.files.maxPartitionBytes
来控制将多少字节打包到 1 个分区