java - 如何使用 Spark 创建大文件的较小子集

标签 java apache-spark apache-spark-dataset

我有一堆大型相关文件。我想使用较大文件中的数据子集生成较小的文件。我如何使用 apache Spark 来实现这一点?

我能够加载这些文件、应用转换并在数据集中创建记录子集。我可以执行 df.show() 来在驱动程序系统输出中查看这些内容。但我找不到将它们写入文件的方法。

我想要的只是 df.show 在文件中的输出。 Spark 已经将结果聚合到驱动程序以显示该数据。为什么没有办法将这些写入文件!

我看到有人提出类似的问题。但没有看到任何明确的答案。 coalesce(1) 对我来说不起作用,因为它太大而无法保存在单个分区内存中。

如果无法写入文件,我还有什么其他选项可以将此数据集放在数据库或类似的地方?我尝试了S3,但它需要很长时间并且生成大量文件。

最佳答案

只需限制数据:

df: DataFrame

df.limit(10).write.format(...).save(...)

关于java - 如何使用 Spark 创建大文件的较小子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53546029/

相关文章:

apache-spark - 如何在 Spark DataFrame/DataSet 中将行拆分为不同的列?

执行@number时的Java链接列表错误消息

Java Spring JPA Repository 之间的日期查询

java - (UML) Spring-Statemachine 在 statemachine.stop() 之后仍在运行

apache-spark -/work/app-xxxxxxx/{0, 1, 2, ...} 中的 spark worker 目录和定期清理的目的

java - SparkContext、JavaSparkContext、SQLContext和SparkSession的区别?

apache-spark - Spark with Hive 是否可以将项目阶段推至 HiveTableScan?

java - 如何在 Linux 上安装 Java 开发环境(JDK、Maven、IDE、...) VirtualBox

windows - Spark 文件系统观察程序无法在 Windows 上运行

java - Spark LuceneRDD - 它是如何工作的