当我们使用sqoop从rdbms导入到hdfs时,我们会给目标目录来存储数据,一旦作业完成,我们可以看到文件名如下所示 part-m-0000 作为Map器输出。有什么方法可以传递存储数据的文件名吗?sqoop有这样的选择吗?
part-m-0000
gojuced71#
根据此答案,您可以使用-d选项指定传递给mapreduce的参数,该选项可以接受文件名选项: -Dmapreduce.output.basename=myoutputprefix 虽然这将更改文件的基名称,但不会更改零件号。其他网站上的答案相同:cloudera公司Hadoop现实世界
-Dmapreduce.output.basename=myoutputprefix
gz5pxeao2#
您可以指定 --target-dir <dir> 要告诉导入所有数据的目录的位置,在这个目录中,您可以看到许多零件文件(例如。 part-m-00000 ). 这些零件文件是由各种Map器创建的(请记住 -m <number> 在sqoop导入命令中)由于数据在多个文件中导入,因此如何命名每个零件文件?我没有看到这个重命名有任何额外的好处。
--target-dir <dir>
part-m-00000
-m <number>
2条答案
按热度按时间gojuced71#
根据此答案,您可以使用-d选项指定传递给mapreduce的参数,该选项可以接受文件名选项:
-Dmapreduce.output.basename=myoutputprefix
虽然这将更改文件的基名称,但不会更改零件号。其他网站上的答案相同:
cloudera公司
Hadoop现实世界
gz5pxeao2#
不,你不能重命名它。
您可以指定
--target-dir <dir>
要告诉导入所有数据的目录的位置,在这个目录中,您可以看到许多零件文件(例如。
part-m-00000
). 这些零件文件是由各种Map器创建的(请记住-m <number>
在sqoop导入命令中)由于数据在多个文件中导入,因此如何命名每个零件文件?
我没有看到这个重命名有任何额外的好处。