gpt4 book ai didi

hadoop - Sqoop 根据列值导入as-parquetfile

转载 作者:可可西里 更新时间:2023-11-01 15:21:45 25 4
gpt4 key购买 nike

所以我正在尝试运行一个 sqoop 导入作业,在其中我根据我的 partition_key 保存 parquet 文件。最终,我希望我的文件夹 /TABLE_DIR/ 有 5 个 Parquet 文件,每个唯一分区键 1 个。目前我只有 4。我无法设置 num-mappers 5。Table2 partition_key 可能会上升到 8,为此我想获得 8 个 Parquet 文件等。

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 import 是一个只有 map 的工作,所以你不能控制输出文件的数量。它将由 hadoop 拆分机制处理(您可以在 mapreduce 或 pig 中控制它,hive 脚本不确定 sqoop 尽管可以查看“fetch_size”参数)。但是,如果您真的想执行以下操作

  1. 您可以在该数据上公开一个配置单元表(小心元数据文件!)。
  2. 将此数据插入另一个配置单元表(这也是 parquet),并在插入时对任何列进行排序(这样做是为了将插入选择转换为 map-reduce,这将再次成为 map-reduce job) 并将 mapreduce.job.reduces 设置为 5 或任何所需的值。

该属性将强制 5 个 reducer 提供 5 个输出文件。

关于hadoop - Sqoop 根据列值导入as-parquetfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52209791/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com