Hadoop 基于列值将Sqoop导入为拼花文件
因此,我尝试运行一个sqoop导入作业,根据分区键保存拼花地板文件。最后,我希望我的文件夹Hadoop 基于列值将Sqoop导入为拼花文件,hadoop,sqoop,parquet,partition,Hadoop,Sqoop,Parquet,Partition,因此,我尝试运行一个sqoop导入作业,根据分区键保存拼花地板文件。最后,我希望我的文件夹/TABLE_DIR/有5个拼花文件,每个唯一的分区键1个。目前我只有4分。我无法将num mappers设置为5。表2分区键可能会上升到8,为此我想得到8个拼花文件等 Table1: primary_key:[1,2,3,4,5,6,7,8,9,10] partition_key: [1,1,1,2,2,2,3,3,4,5] value: [15,12,18,18,21,23,25,26,24,10]
/TABLE_DIR/
有5个拼花文件,每个唯一的分区键1个。目前我只有4分。我无法将num mappers设置为5。表2分区键可能会上升到8,为此我想得到8个拼花文件等
Table1:
primary_key:[1,2,3,4,5,6,7,8,9,10]
partition_key: [1,1,1,2,2,2,3,3,4,5]
value: [15,12,18,18,21,23,25,26,24,10]
Code:
sqoop import \
--query "select primary_key,partition_key,value from Table1" \
--compress --compression-codec snappy \
--split-by partition_key \
--target-dir /TABLE_DIR/
由于sqoop导入是一个仅映射的作业,因此无法控制输出文件的数量。它将由hadoop拆分机制来处理(您可以在mapreduce或pig中控制这一点,但配置单元脚本不确定sqoop。不过可以查看“fetch_size”参数)。然而,如果你真的想做下面的事情