gpt4 book ai didi

hadoop - 配置单元:从程序中插入数据但不插入数据文件?

转载 作者:行者123 更新时间:2023-12-02 21:49:48 24 4
gpt4 key购买 nike

我想从程序的输出而不是现有的数据文件中加载数据。这是我想要的:

CREATE TABLE MyTable (
X STRING);

INSERT OVERWRITE MyTable
BY PROGRAM "python MyProgram.py"; -- #!/usr/bin/python
-- print 'hello'
-- print 'world'

SELECT X FROM MyTable; -- I will get 2 records:
-- hello
-- world

但似乎 hive 没有提供这种 INSERT ... BY PROGRAM方法。有替代的方法吗?

最佳答案

我过去使用的是Hadoop HDFS Rest Api(http://hadoop.apache.org/docs/r1.0.4/webhdfs.html)。我从 shell 程序运行程序(.py),然后它通过Api将数据推送到HDFS / Hive中。如果您的Hive表已经设置好,则可以覆盖现有的Hive文件。

我使用的另一种方法是程序(.py,.sh等)将数据创建到临时文件中,然后您可以使用Hive命令添加该文件,然后再删除该临时文件。

编辑:

针对您说您无权访问 shell 的评论,您可以尝试使用Hive中的自定义Map / Reduce功能(https://cwiki.apache.org/confluence/display/Hive/Tutorial滚动到底部的“自定义Map / Reduce脚本”)并传递到 map 中-减少一些将被忽略的伪数据,并以reduce的形式编写您的.py脚本,而只是使其发出所需的数据即可。

关于hadoop - 配置单元:从程序中插入数据但不插入数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22009361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com