python transform函数,具有python transform函数的配置单元:“无法识别‘transform’附近的输入”...

我有一个配置单元表,它可以跟踪在进程的各个阶段中移动的对象的状态。表格如下:hive> desc journeys;

object_id string

journey_statuses array

下面是一个典型的记录示例:

^{pr2}$

表中的记录是使用hive0.13的collect_list生成的,状态有一个顺序(如果顺序不重要,我会使用collect_set)。对于每个object_id,我想将journey缩写为按其出现的顺序返回旅程状态。在

我写了一个快速的Python脚本,从stdin读取:#!/usr/bin/env python

import sys

import itertools

for line in sys.stdin:

inputList = eval(line.strip())

readahead = iter(inputList)

next(readahead)

result = []

for id, (a, b) in enumerate(itertools.izip(inputList, readahead)):

if id == 0:

result.append(a)

if a != b:

result.append(b)

print result

我计划在一个Hivetransform调用中使用这个。它在本地运行时似乎可以工作:$ echo '["A","A","A","B","B","B","C","C","C","C","D"]' | python abbreviate_list.py

['A', 'B', 'C', 'D']

但是,当我添加文件并尝试在配置单元中执行时,会返回一个错误:hive> add file abbreviateList.py;

Added resource: abbreviateList.py

hive> select

> object_id,

> transform(journey_statuses) using 'python abbreviateList.py' as journey_statuses_abbreviated

> from journeys;

NoViableAltException( ... wall of Java error messages ... )

FAILED: ParseException line 3:2 cannot recognize input near 'transform' '(' 'journey_statuses' in select expression

你能看出我做错了什么吗?在

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值