Apache spark 为什么在spark和sql工具中运行“get_json_object”时返回不同的结果

Apache spark 为什么在spark和sql工具中运行“get_json_object”时返回不同的结果,apache-spark,hive,apache-spark-sql,hiveql,Apache Spark,Hive,Apache Spark Sql,Hiveql,我开发了一个配置单元查询,它使用横向视图并获取_json_对象来解压缩一些json。使用jdbc客户机dbvisualizer对配置单元数据库执行查询已经足够好了,但是当从java应用程序以spark sql的形式在相同的数据上运行时,它不会返回任何结果。 我已经找到了问题的根源,即函数“get_json_object”返回的内容存在差异 这种类型的查询可以说明这个问题 选择concat_ws |,获取_json_对象{product_offer:[ {productName:Plan A},

我开发了一个配置单元查询,它使用横向视图并获取_json_对象来解压缩一些json。使用jdbc客户机dbvisualizer对配置单元数据库执行查询已经足够好了,但是当从java应用程序以spark sql的形式在相同的数据上运行时,它不会返回任何结果。 我已经找到了问题的根源,即函数“get_json_object”返回的内容存在差异

这种类型的查询可以说明这个问题

选择concat_ws |,获取_json_对象{product_offer:[ {productName:Plan A}, {productName:Plan B}]}', “$.product\u提供.productName” 在dbvisualizer中针对配置单元数据库运行时,我在json数组中得到一个包含两个产品名称的数组:[计划a,计划B]。 当从java应用程序运行与spark sql相同的查询时,返回null


我注意到另一个区别:路径“$.product\U offer[0]。productName在db visualizer中返回“Plan A”,而在spark中没有返回任何内容。

提取产品名称数组的路径是

选择concat_ws |,获取_json_对象“{product_报价:[{productName:Plan A},{productName:Plan B}]}”,“$.product_报价[*].productName” 在spark dbvisualizer中都可以使用