我正在使用hive-0.12。我使用以下查询成功创建了一个 Parquet 表。

hive> create table ptest1 (a INT, b DOUBLE)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
stored as INPUTFORMAT 'parquet.hive.DeprecatedParquetInputFormat'
OUTPUTFORMAT 'parquet.hive.DeprecatedParquetOutputFormat';
OK
Time taken: 0.124 seconds

但是,当我使用“STRING”作为列数据类型时,它失败了。
hive> create table ptest1 (a INT, b STRING)
ROW FORMAT SERDE 'parquet.hive.serde.ParquetHiveSerDe'
stored as INPUTFORMAT 'parquet.hive.DeprecatedParquetInputFormat'
OUTPUTFORMAT 'parquet.hive.DeprecatedParquetOutputFormat';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
Could not initialize class org.apache.hadoop.hive.ql.io.parquet.serde.primitive.ParquetPrimitiveInspectorFactory

请提出这里可能有什么问题。

谢谢。

最佳答案

我通过在 hive 下面添加几个 jar 解决了我的这个问题。

add jar parquet-avro-1.2.5.jar;
add jar parquet-cascading-1.2.5.jar;
add jar parquet-column-1.2.5.jar;
add jar parquet-common-1.2.5.jar;
add jar parquet-encoding-1.2.5.jar;
add jar parquet-generator-1.2.5.jar;
add jar parquet-hadoop-1.2.5.jar;
add jar parquet-hive-1.2.5.jar;
add jar parquet-pig-1.2.5.jar;
add jar parquet-scrooge-1.2.5.jar;
add jar parquet-test-hadoop2-1.2.5.jar;
add jar parquet-thrift-1.2.5.jar;
add jar parquet-format-1.0.0.jar;

现在工作正常。谢谢。

关于hadoop - 无法创建列数据类型为 'STRING'的Parquet Hive表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30168118/

10-16 18:25