【发布时间】:2018-02-27 01:07:27
【问题描述】:
我正在尝试使用以下代码将DataFrame 作为文本格式文件加载到HDFS 和S3 中。 DataFrame 名称是 finalData。
val targetPath = "/user/test/File"
val now = Calendar.getInstance().getTime()
val formatter = new SimpleDateFormat("yyyyMMddHHmmss")
val timeStampAfterFormatting = formatter.format(now)
val targetFile = s"""$targetPath/test_$timeStampAfterFormatting.txt"""
finalData.repartition(1).rdd.saveAsTextFile(targetFile)
使用上面的代码我可以成功加载数据。但文件名与我提供的不同,也不是文本格式。使用我提到的名称创建了一个目录。
目录名称 - /user/test/File/test_20170918055206.txt
-bash-4.2$ hdfs dfs -ls /user/test/File/test_20170918055206.txt
找到 2 件商品
/user/test/File/test_20170918055206.txt/_SUCCESS
/user/test/File/test_20170918055206.txt/part-00000
我想创建我提到的文件而不是创建目录。谁能帮帮我。
【问题讨论】:
-
您有预定义的方法将数据帧写入配置单元表。你检查了吗?
-
@philantrovert 是的,OP 可以:1)按照我链接的答案的建议 2)保存到 Hive
-
从您的示例中看起来这是一个完全相同的副本。我们是否无法理解您在做什么?
标签: scala hadoop apache-spark dataframe hdfs