gpt4 book ai didi

python - 如何将参数传递给 Hive 中的 Python 流脚本?

转载 作者:可可西里 更新时间:2023-11-01 15:01:36 25 4
gpt4 key购买 nike

Hive 用户可以通过脚本流式传输表以转换该数据:

ADD FILE replace-nan-with-zeros.py;

SELECT
TRANSFORM (...)
USING 'python replace-nan-with-zeros.py'
AS (...)
FROM some_table;

我有一个简单的 Python 脚本:

#!/usr/bin/env python
import sys


kFirstColumns= 7

def main(argv):

for line in sys.stdin:
line = line.strip();
inputs = line.split('\t')

# replace NaNs with zeros
outputs = [ ]
columnIndex = 1;
for value in inputs:
newValue = value
if columnIndex > kFirstColumns:
newValue = value.replace('NaN','0.0')
outputs.append(newValue)
columnIndex = columnIndex + 1

print '\t'.join(outputs)

if __name__ == "__main__":
main(sys.argv[1:])

如何使 kFirstColumns 成为此 Python 脚本的命令行或其他类型的参数?

谢谢!

最佳答案

解决方案真的很简单。使用

ADD FILE replace-nan-with-zeros.py;

SELECT
TRANSFORM (...)
USING 'python replace-nan-with-zeros.py 7'
AS (...)
FROM some_table;

不仅仅是

  ...
USING 'python replace-nan-with-zeros.py'
...

它对我来说很好。

Python 脚本应更改为:

kFirstColumns= int(sys.argv[1])

关于python - 如何将参数传递给 Hive 中的 Python 流脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16727401/

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