在带有分隔符的数据上配置单元udf

2guxujil  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(372)

我正在使用python&hive自定义项来取消IVOT数据python.py'unpivots数据,但我想在hive上运行这个。我无法处理包含空格和句点的项。
有什么好办法可以绕过它吗?
我的起始表如下所示:

store        item           flavor    
 ------- ----------------- ------------ 
      1   cupcake           chocolate   
      1   cake pops         red velvet  
      1   ice cream         vanilla     
      1   cookies/candies   lemon       
      2   cupcake           red velvet  
      2   cake pops         vanilla     
      2   ice cream         chocolate   
      2   cookies/candies   chocolate

我使用内部代码来获得:

store    cupcake     cake pops    ice cream   cookies/candies  
 ------- ------------ ------------ ----------- ----------------- 
      1   chocolate    red velvet   vanilla     lemon            
      2   red velvet   vanilla      chocolate   chocolate

使用:

SELECT TRANSFORM(store, item, flavor) USING ‘python.py’ 
AS (store, cupcake, cake pops, ice cream, cookies/candies) FROM mytable;

给出一个错误:“编译语句时出错:失败:parseexception行3:25不匹配的输入(应为“pops”)靠近transform子句中的“cake”

kuarbcqp

kuarbcqp1#

尝试使用后引号或单引号。
如果您的自定义项定义了带有空格的列名,我更喜欢反引号。但是,在这种情况下,我想你需要使用单引号。

SELECT TRANSFORM(store, item, flavor) USING ‘python.py’ AS (store, cupcake, 'cake pops', ice cream, cookies/candies) FROM mytable;

相关问题