带分隔符的数据上的配置单元 UDF
Posted
技术标签:
【中文标题】带分隔符的数据上的配置单元 UDF【英文标题】:hive UDF on data with delimiters 【发布时间】:2017-06-02 00:06:54 【问题描述】:我正在使用 python 和 hive UDF 来取消透视数据。 'python.py' unpivots 数据,但我想在 Hive 上运行它。我无法处理包含空格和句点的项目。
有什么好办法绕过它吗?
我的起始表如下:
商店物品风味 -------- ----- ------------ 1个纸杯蛋糕巧克力 1个蛋糕流行红色天鹅绒 1个香草冰淇淋 1个饼干/糖果柠檬 2 纸杯蛋糕红丝绒 2个蛋糕汽水香草 2 冰淇淋巧克力 2块饼干/糖果巧克力我使用内码获取:
商店 纸杯蛋糕 蛋糕棒棒糖 冰淇淋 饼干/糖果 -------- ------------ ------------ ----------- -------- --------- 1个巧克力红丝绒香草柠檬 2红色天鹅绒香草巧克力巧克力使用:
SELECT TRANSFORM(store, item, flavor) USING ‘python.py’
AS (store, cupcake, cake pops, ice cream, cookies/candies) FROM mytable;
给出错误:“编译语句时出错:FAILED: ParseException line 3:25 mismatched input 'pops' expecting ) near 'cake' in transform Clause”
【问题讨论】:
不清楚你的python代码是做什么的 限定别名,例如`蛋糕汽水` 【参考方案1】:尝试使用反引号或单引号。
如果您的 udf 用空格定义列名,我更喜欢反引号。但是,在这种情况下,我猜你需要使用单引号。
SELECT TRANSFORM(store, item, flavor) USING ‘python.py’ AS (store, cupcake, 'cake pops', ice cream, cookies/candies) FROM mytable;
【讨论】:
谢谢@hiropon。我的 'python.py' 实际上做了反透视,但我想在 Hive 上运行它。我编辑了问题。以上是关于带分隔符的数据上的配置单元 UDF的主要内容,如果未能解决你的问题,请参考以下文章
想要编写(或使用现有的?)UDF 来读取具有多字符分隔符的文件
指定表格页脚时,最后一个单元格上的uitableview分隔符丢失