在数组内的 Spark SQL 中查询
Query in Spark SQL inside an array
为了给出背景,我使用
加载了JSON
sqlContext.read.json(sn3://...)
df.registerTable("posts")
我在 Spark
中的 table 有以下架构
scala> posts.printSchema
root
|-- command: string (nullable = true)
|-- externalId: string (nullable = true)
|-- sourceMap: struct (nullable = true)
| |-- hashtags: array (nullable = true)
| | |-- element: string (containsNull = true)
| |-- url: string (nullable = true)
|-- type: string (nullable = true)
我想 select 所有带有主题标签 "nike"
的帖子
sqlContext.sql("select sourceMap['hashtags'] as ht from posts where ht.contains('nike')");
我收到一个错误
未定义函数 ht.contains
我不知道用什么方法在数组中搜索。
谢谢!
我找到了有关 Hive 的答案 SQL。
sqlContext.sql("select sourceMap['hashtags'] from posts where array_contains(sourceMap['hashtags'], 'nike')");
关键函数是array_contains()
为了给出背景,我使用
加载了JSONsqlContext.read.json(sn3://...)
df.registerTable("posts")
我在 Spark
中的 table 有以下架构scala> posts.printSchema
root
|-- command: string (nullable = true)
|-- externalId: string (nullable = true)
|-- sourceMap: struct (nullable = true)
| |-- hashtags: array (nullable = true)
| | |-- element: string (containsNull = true)
| |-- url: string (nullable = true)
|-- type: string (nullable = true)
我想 select 所有带有主题标签 "nike"
的帖子sqlContext.sql("select sourceMap['hashtags'] as ht from posts where ht.contains('nike')");
我收到一个错误 未定义函数 ht.contains
我不知道用什么方法在数组中搜索。
谢谢!
我找到了有关 Hive 的答案 SQL。
sqlContext.sql("select sourceMap['hashtags'] from posts where array_contains(sourceMap['hashtags'], 'nike')");
关键函数是array_contains()