我已经开发了一个hive查询,它使用横向视图并获取json对象来解压一些json。使用jdbc客户机(dbvisualizer)对配置单元数据库执行查询已经足够好了,但是当从java应用程序以sparksql的形式运行时,在相同的数据上,它不会返回任何结果。我已经找到了问题的根源,即“get\u json\u object”函数返回的内容存在差异。
这种类型的查询可以说明这个问题
select concat_ws( "|", get_json_object('{"product_offer":[
{"productName":"Plan A"},
{"productName":"Plan B"}]}',
'$.product_offer.productName') )
当在dbvisualizer中针对一个配置单元数据库运行时,我在json数组中得到一个包含两个产品名的数组:[“plana”,“planb”]。当从java应用程序中以sparksql运行同一查询时,返回null。
我注意到另一个区别:路径“$.product\u offer[0].productname”在db visualizer中返回“plan a”,而在spark中没有返回任何内容。
1条答案
按热度按时间jyztefdp1#
提取产品名称数组的路径是
在spark dbvisualizer中都可以使用。