【发布时间】:2020-04-26 14:01:37
【问题描述】:
我正在尝试将数据框保存到特定位置。
successDF.toJavaRDD().saveAsTextFile(successFilePath);
这里,successFilePath 是:/hdfs/tmp/20200102/04.dat
我需要将文件名保存为 04.dat 的数据,其中 20200102 和 04 作为参数传入
但该过程会创建多个文件,如下所示:
Folder: /hdfs/tmp/20200102/04.dat
Files:
._SUCCESS.crc
.part-00000.crc
_SUCCESS
part-00000
我的要求是,输出文件应该在/hdfs/tmp/20200102中创建,并且在文件夹下应该只有1个文件,文件名为:04.dat
注意我正在使用 Spark Java
请推荐
【问题讨论】:
-
如果你可以只用一个减速器“SPARK”运行作业,你会得到它
-
不清楚为什么需要 1 个文件。这不是应该使用 Hadoop 的方式。如果您需要一个文件,您可以使用 getmerge CLI 下载它
-
文件只有一行。它就像一个只有一行数据的触摸文件
-
那你就不需要 RDD 了。只需使用 HDFS API 创建文件。
-
@Vladislav,您能否指定您指的是哪个 HDFS API。仅供参考,这只是更大 Spark 工作的一部分,我需要在 hdfs 中生成一个带有一行数据的触摸文件
标签: java dataframe apache-spark filesystems hdfs