Hive 中的 UDF python 和文件 Json
UDF python in Hive with File Json
我在 Ambari 中的 Hive 视图有两个问题。
1.问题 1:I 有脚本 :
<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
你能帮帮我吗?
我建议尝试使用此 UDTF,而不是使用 python,它允许在 json columns within hive 上工作,然后可以操作大型 json 并在分布式和优化方式。
我在 Ambari 中的 Hive 视图有两个问题。
1.问题 1:I 有脚本 :
<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
你能帮帮我吗?
我建议尝试使用此 UDTF,而不是使用 python,它允许在 json columns within hive 上工作,然后可以操作大型 json 并在分布式和优化方式。