为了给backfround我已经使用
加载了JSONsqlContext.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.contains
我不确定在数组中使用什么方法进行搜索。
谢谢!
答案 0 :(得分:17)
我发现答案指的是Hive SQL。
sqlContext.sql("select sourceMap['hashtags'] from posts where array_contains(sourceMap['hashtags'], 'nike')");
关键功能是array_contains()