带有文件 Json 的 Hive 中的 UDF python

Posted

技术标签:

【中文标题】带有文件 Json 的 Hive 中的 UDF python【英文标题】:UDF python in Hive with File Json 【发布时间】:2018-06-15 07:58:03 【问题描述】:

我在 Ambari 中的 Hive 视图有两个问题。

1.问题1:我有脚本:

<br>DELETE FILE /user/admin/hive/scripts/MKT_UDF/fb_audit_ads_creatives.py;
<br>ADD FILE /user/admin/hive/scripts/MKT_UDF/fb_audit_ads_creatives.py;
<br>SELECT TRANSFORM (line) USING 'python fb_audit_ads_creatives.py' as (ad_id) FROM stg_fb_audit_ads_creatives_json where date_time='2018-05-05';

我运行了很多次,运行流畅。但有时,我会收到错误:

你可以看到它:这里是Log error 我认为这是由于配置(Hive、Ambari、...超时...v.v.)

问题 2:我有文件 json:


  "body": "https://www.facebook.com/groupkiemhieptinhduyen #truongsinhquyet #sapramat #tsq #game3d",
  "thumbnail_url": "https://external.xx.fbcdn.net/safe_image.php?d=AQDU01asRxdnCObW&w=64&h=64&url=https%3A%2F%2Fscontent.xx.fbcdn.net%2Fv%2Ft15.0-10%",
  "campaign_id": "23842841688740666"

我使用上面的脚本 HQL 和 UDF Python:

for line in sys.stdin:
data = json.loads(line)
print (data)
print(data['thumbnail_url']

我运行没问题。 但使用 UDF Python:

for line in sys.stdin:
data = json.loads(line)
print (data)
print(data['body']

我收到错误: Log error

你能帮帮我吗?

【问题讨论】:

【参考方案1】:

我建议不要使用 python,而是尝试使用这个 UDTF,它允许在 json columns within hive 上工作,然后可以操作大型 json 并以分布式和优化的方式获取所需的数据。

【讨论】:

以上是关于带有文件 Json 的 Hive 中的 UDF python的主要内容,如果未能解决你的问题,请参考以下文章

使用 pyspark 来自 JSON 数据的 Hive 表

Hive添加的文件在哪里?

Hive UDF 全局变量

Hive:如何分解嵌入在 CSV 文件中的 JSON 列?

hive 存储,解析,处理json数据

如何在 Hive 中重新加载更新的自定义 UDF 函数?