我正在学习Hive,我遇到了一个问题,我似乎找不到一个可行的答案。我必须从表中提取所有只包含小于5000的整数值的数值列,并创建一个以空格分隔的文本文件。我很熟悉创建文本文件和选择行,但选择符合我不熟悉的特定参数的列,任何帮助或指导将不胜感激!下面我列出了表格的结构。另外,还有一张图片以表格形式显示数据。对于输出,我需要遍历所有列,只返回满足小于5000的整数值参数的列。
create table lineorder (
lo_orderkey int,
lo_linenumber int,
lo_custkey int,
lo_partkey int,
lo_suppkey int,
lo_orderdate int,
lo_orderpriority varchar(15),
lo_shippriority varchar(1),
lo_quantity int,
lo_extendedprice int,
lo_ordertotalprice int,
lo_discount int,
lo_revenue int,
lo_supplycost int,
lo_tax int,
lo_commitdate int,
lo_shipmode varchar(10)
)
tbl格式的数据
2条答案
按热度按时间0tdrvxhp1#
我不认为hive支持函数中的变量替换。因此,您必须编写一个shell脚本来执行返回所需列的第一个查询,然后您可以将其分配给shell脚本中的一个变量,然后创建一个新的查询来在本地目录中创建文件,并通过bash中的hive-e运行它。
bash脚本示例:
6fe3ivhb2#
条件列选择是一个可怕的,可怕的,不好的,非常糟糕的主意。
话虽如此,这里是一个演示。