我正在尝试从导出查询 Hive
给当地人 CSV
. 同样的错误仍然存在,任何帮助都将不胜感激!
命令:
insert overwrite local directory '/path/to/directory'
row format delimited fields terminated by ',' select * from table limit 10;
错误:
errorMessage:org.apache.spark.sql.catalyst.parser.ParseException:
`missing 'TABLE' at 'local'
先谢谢你。
4条答案
按热度按时间cwdobuhd1#
可以从命令行执行以下操作:
mlnl4t2r2#
这就是我在Hive1.2(mapr发行版)中所做的工作,它在两个步骤中完美地为我工作:
第1步:在Hive中或使用时进行
hive -e
命令行上的选项:步骤2:在命令行中,使用
hadoop fs
命令。或者你甚至可以这样做:
在上面的例子中,directory2和directory2是不同的位置。如果你有任何问题,请告诉我。
polkgigr3#
hive可以使用
OpenCSVSerde
. 您可以在hdfs文件夹上创建一个表,以显示csv文件:然后,您可以使用任何所需的select查询数据:
insert into select语句可能是一个复杂的连接,用于查找数据质量问题。产生的结果将是坏记录。
这个
OpenCSVSerde
将为同一语句中插入的行创建一个或多个文件:您可以将单个文件下载到磁盘并重命名:
如果有很多数据,你会得到一个以上的文件,所以更安全的猫在文件夹中的所有文件到本地文件
结果output.csv将正确格式化csv数据。
5rgfhyps4#
您可以从命令行执行配置单元查询,并通过管道将输出传输到文件。
不幸的是,这将为您提供一个以制表符分隔的值文件。我没有找到更改分隔符的方法,但您可以对文件进行后期处理。