apache-spark - HDFS和Spark-重写部分大文件

标签 apache-spark hadoop

如何重写大文件(大于1TB)的一部分?

我将数据存储在 Parquet 文件中,它们按最大块大小分割。是否可以更新某些记录并仅重写该块而无需重写。

最佳答案

我建议创建另一个Spark作业,并使用完整的hdfs偏移路径(例如hdfs:// user // part-000-)读取该特定文件。这只会读取该文件,然后相应地更改您的数据,并将数据写入一个单独的hdfs目录中,从而创建一个df.coalesce(1).write.parquet()。这将返回一个文件,您将把hadoop fs -cp / old / directory /删除,并删除旧文件hadoop fs -rm /。这将很容易解决您的问题,而不会影响其他目录。

关于apache-spark - HDFS和Spark-重写部分大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54177657/

相关文章:

scala - SparkSession 不接受运行时配置

apache-spark - 通过Thrift服务器访问Spark SQL RDD表

scala - 使用 Redis 进行 Spark 结构化流动态查找

java - 无法在Java中的SparkSQL中读取文件

hadoop - camus-使用kafka的例子

scala - 在 Spark 中创建的数据之上创建 Hive 表

apache-spark - 如何在Java/Scala中将Python函数注册为SparkSQL中的UDF?

hadoop 实现通用列表可写

hadoop - hive :动态分区

hadoop - 在 Hadoop 中使用自定义计数器来保持 Mapreduce 作业有效?