当我们使用sqoop从RDBMS导入HDFS时,我们将给目标目录存储数据,一旦作业完成,我们可以看到文件名为part-m-0000
作为映射器输出。有没有办法可以传递数据存储的文件名? sqoop有这样的选择吗?
答案 0 :(得分:1)
根据this answer,您可以使用-D选项指定传递给mapreduce的参数,该选项可以接受文件名选项:
-Dmapreduce.output.basename=myoutputprefix
虽然这会更改文件的基本名称,但不会更改部件号。
其他网站上的答案相同:
答案 1 :(得分:0)
您可以指定--target-dir <dir>
来告知导入所有数据的目录的位置,
在此目录中,您会看到许多零件文件(例如part-m-00000
)。这些零件文件由各种映射器创建(在sqoop导入命令中记住-m <number>
)
由于数据是在多个文件中导入的,您如何命名每个零件文件?
我没有看到此重命名的任何额外好处。