当前位置: 首页 > 知识库问答 >
问题:

在数组中使用Spark SQL进行查询

杜成和
2023-03-14

为了给出backfround,我使用

sqlContext.read.json(sn3://...)
df.registerTable("posts")
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)
sqlContext.sql("select sourceMap['hashtags'] as ht from posts where ht.contains('nike')");

共有1个答案

长孙弘盛
2023-03-14

我找到了参考Hive SQL的答案。

sqlContext.sql("select sourceMap['hashtags'] from posts where array_contains(sourceMap['hashtags'], 'nike')");

关键函数是array_contains()

 类似资料:
  • 问题内容: 我正在使用psql在Postgres中查询数据库。我使用以下查询来搜索一个名为 tag 的字段,该字段的数据类型为文本数组: 现在,我需要创建一个查询,以在 标签 字段中搜索以字母“ A”开头的任何单词。我尝试了以下方法: 这给了我一个语法错误。关于如何将LIKE与文本数组结合使用的任何建议? 问题答案: 使用函数将数组转换为行集: 本应算唯一条目表,只需更换你的主键的名称。 话虽这么

  • 我正在处理数据帧,需要提取数据。我有许多嵌套的级别,所以我使用分解和选择来创建第一个级别,但随后我对嵌套级别使用UDF。 我有一个UDF,它取Root.Obj,这是一个数组,我希望它返回一个数组[MyObj] 我的输出类: 简而言之,这是输入模式: 我的自定义项: 这是更复杂的IRL,因为我需要从其他地方检索值,并且有更多的嵌套数组。此外,Obj和FieldC的输入结构比这里复杂得多,我不能(或不

  • 问题内容: 我有两个表,一个表用于新闻,另一个表用于评论,我想获取其状态已设置为批准的评论数。 但是此查询的问题在于,无论是否存在与该新闻相对应的评论,为评论列获取的最小值为1。 任何帮助将是非常可贵的。 问题答案: 使用代替 请尝试以下方法:

  • 以下MySQL查询是等效的: 然而,行构造器表单(即第一个示例)的强大之处在于,您可以使用它来处理查询任意长度的值对列表。没有它,您必须编写动态sql,这是一个安全风险。使用第一个表单避免了这个棘手的问题。 但是,如何使用预准备状态在JDBC中表示这一点?例如: 我已经研究了setArray,但是如何在数组的值中表示列1和列2的值?我想知道是否接口可以作为这个管道。但是阅读文档时,我看不出它是如何

  • 问题内容: 我对Doctrine Symfony中SQL查询的翻译有疑问。我想做这样的事情: 在此示例中,我搜索用户99的所有朋友。 My tables : Member: (id, name, visible) Friend: (id, id_member, id_friend, active) 精度:我想使用Symfony传呼机。 一个解法 ?谢谢 ! 问题答案: DQL不支持UNION,但是

  • 问题内容: 我已经阅读了有关如何编写这些查询的多个示例,但是我正在努力使此特定代码像在使用时运行 这是匹配以a开头的用户名的正确方法吗? 问题答案: 不,您不需要内部单引号 您现在正在运行的语句将尝试匹配而不是匹配 bindParam将确保在将所有字符串数据提供给SQL语句时自动正确引用。