hive/impala写入hdfs

cig3rfwq  于 2021-07-15  发布在  Hadoop
关注(0)|答案(1)|浏览(572)

在hue上,我可以使用hive或impala编写查询:

SELECT * FROM database.tablename LIMIT 10

输出出现,我可以单击“导出数据”并将其存储在我的hdfs文件夹中 user/username/mytestfolder 作为Parquet地板。我想从配置单元脚本进行导出,并尝试了以下版本:

INSERT OVERWRITE DIRECTORY '/user/username/mytestfolder'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS PARQUET
SELECT * FROM database.tablename
LIMIT 10;

但它总是返回一个错误 Error while compiling statement: FAILED: SemanticException Error creating temporary folder on: hdfs://bdp01cdhc01-ns/user/username

8ehkhllq

8ehkhllq1#

我不认为 INSERT OVERWRITE DIRECTORY 是你想要的。
您可以使用 CREATE TABLE AS SELECT 陈述

CREATE TABLE x
STORED AS PARQUET
LOCATION '/user/username/mytestfolder'
AS SELECT * FROM database.tablename LIMIT 10;

或者 CREATE EXTERNAL TABLE x LIKE database.tablename LOCATION 'path'; ,然后是 INSERT 从另一张table
但是,hdfs不应该用来存储这么小的文件(只有10行)
而且,这些是文本文件,没有Parquet的上下文

ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'

或者,如果您有spark或pig可用,也可以让您将配置单元外的表保存到备用hdfs位置

相关问题