为了给出回合,我使用
sqlContext.read.json(sn3://...)
df.registerTable("posts")
我在 Spark 中的表有以下架构
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)
我想选择所有带有"nike"标签的帖子
sqlContext.sql("select sourceMap['hashtags'] as ht from posts where ht.contains('nike')");
我收到错误未定义的函数 ht.包含
我不确定使用什么方法在数组中搜索。
谢谢!
我找到了参考Hive SQL的答案。
sqlContext.sql("select sourceMap['hashtags'] from posts where array_contains(sourceMap['hashtags'], 'nike')");
关键函数是 array_contains()