我知道我们可以使用Spark SQL加载镶木地板文件并使用Impala但是想知道我们是否可以使用Hive做同样的事情.我一直在阅读很多文章,但我仍然感到困惑.
简单地说,我有一个镶木地板文件 - 比如users.parquet.现在我对如何从users.parquet加载/插入/导入数据到hive(显然是在表中)感到震惊.
如果我遗漏了明显的东西,请告诉或指出我正确的方向.
https://phdata.io/examples-using-textfile-and-parquet-with-hive-and-impala/
有没有一种方法可以根据基于Avro模式的实木复合地板文件直接在Amazon Athena中创建表?该模式已编码到文件中,因此它看起来很愚蠢,我需要亲自创建DDL。
但它们与Hive直接相关,对Athena无效。理想情况下,我正在寻找一种无需您在控制台上进行定义即可以编程方式进行操作的方法。
我正在尝试动态(不在Hive DDL中列出列名和类型)在镶木地板数据文件上创建Hive外部表.我有底层镶木地板文件的Avro架构.
我的尝试是使用以下DDL:
CREATE EXTERNAL TABLE parquet_test
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS PARQUET
LOCATION 'hdfs://myParquetFilesPath'
TBLPROPERTIES ('avro.schema.url'='http://myHost/myAvroSchema.avsc');
Run Code Online (Sandbox Code Playgroud)
使用正确的架构成功创建了我的Hive表,但是当我尝试读取数据时:
SELECT * FROM parquet_test;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
java.io.IOException: org.apache.hadoop.hive.serde2.avro.AvroSerdeException: Expecting a AvroGenericRecordWritable
Run Code Online (Sandbox Code Playgroud)
有没有办法成功创建和读取Parquet文件,而没有在DDL中提及列名称和类型列表?