scala> val map1 = spark.sql("select map('p1', 's1', 'p2', 's2')")
map1:org.apache.spark.sql.dataframe=[Map(p1,s1,p2,s2):Map<string,string>]
scala> map1.show()
+--------------------+
| map(p1, s1, p2, s2)|
+--------------------+
|[p1 -> s1, p2 -> s2]|
+--------------------+
scala> spark.sql("select element_at(map1, 'p1')")
org.apache.spark.sql.analysisexception:无法解析' map1
'给定输入列:[];第1行位置18;'项目[unsolvedAlias('element_at('map1,p1),none)]
如何在第二个sql查询中重用dataframemap1?
1条答案
按热度按时间jutyujz01#
map1
是一个Dataframe,其中有一列类型为map。此列的名称为map(p1, s1, p2, s2)
. 可以使用selectexpr查询Dataframe:印刷品
另一个选项是将Dataframe注册为临时视图,然后使用sql查询:
打印出相同的结果。