【问题标题】:Creating text table from Impala partitioned parquet table从 Impala 分区拼花表创建文本表
【发布时间】:2016-03-18 12:52:08
【问题描述】:

我有一张镶木地板,格式如下:

.impala_insert_staging
yearmonth=2013-04
yearmonth=2013-05
yearmonth=2013-06
...
yearmonth=2016-04

每个目录下面都是我的镶木地板文件。我需要把它们放到我的另一张桌子上,它只有一个

.impala_insert_staging

文件。

请帮忙。

【问题讨论】:

  • 我真的,真的不明白是什么问题。你为什么不运行一个简单的查询,比如INSERT INTO TABLE target SELECT cola, colb, ... FROM source 并使用 Impala 来实现它的本质,即数据库引擎?

标签: hive impala parquet


【解决方案1】:

我发现最好的方法是将文件拉入本地,然后sqoop 将它们备份到文本表中。

为了拉下镶木地板,我执行了以下操作:

impala-shell -i <ip-addr> -B -q "use default; select * from <table>" -o filename '--output_delimiter=\x1A'

不幸的是,这会将yearmonth 值添加为我表中的另一列。所以我要么进入我的 750GB 文件并在最后一列中使用 sed/awk,要么使用 mysqlimport(因为我也在使用 MySQL)只导入我感兴趣的列。

最后我将数据sqoop到一个新的文本表中。

sqoop import --connect jdbc:mysql://<mysqlip> --table <mysql_table> -uroot -p<pass> --hive-import --hive-table <new_db_text>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-29
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 2015-11-07
    相关资源
    最近更新 更多