【问题标题】:Hive: How to load data produced by apache pig into a hive table?Hive:如何将 apache pig 生成的数据加载到 hive 表中?
【发布时间】:2018-07-13 08:42:37
【问题描述】:

我正在尝试将 pig 的输出加载到配置单元表中。数据以 avro 模式存储在 HDFS 上。在猪的工作中,我只是在做:

data = LOAD 'path' using AvroStorage();
data = FILTER BY some property;
STORE data into 'outputpath' using AvroStorage();

我正在尝试通过以下方式将其加载到配置单元表中:

load data inpath 'outputpath' into table table_with_avro_schema parititon(somepartition);

但是,我收到一条错误消息:

FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: MetaException(message:Invalid partition key & values; keys [somepartition, ], values [])

有人可以建议我在这里做错了什么吗?非常感谢!

【问题讨论】:

    标签: hive apache-pig hiveql


    【解决方案1】:

    我刚刚发现这是因为 LOAD 操作没有反序列化数据。它的作用就像一个复制操作。因此,为了修复它,您应该按照以下步骤操作:

    1. CREATE EXTERNAL TABLE some_table LIKE SOME_TABLE_WITH_SAME_SCHEMA;
    2. LOAD DATA INPATH 'SOME_PATH' INTO some_table ;
    3. INSERT INTO TARGET_TABLE SELECT * FROM some_table;
    

    基本上,我们应该先将数据加载到外部表中,然后将其插入到目标 hive 表中。

    【讨论】:

    • 你可以使用 Pig HCat 函数来代替
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多