【问题标题】:What is alternate of like operator with group_concate in spark sql?spark sql中使用group_concat的like运算符有什么替代方法?
【发布时间】:2017-01-08 02:50:35
【问题描述】:

在 mysql 中,我们可以在 group_concat 上使用 like 运算符,例如

select case when group_concat(color) like '%red%' then 1 else 0 end;

但它在 spark sql 中不起作用,因为我使用了 collect_set 而不是 group_concat
它显示数据类型不匹配的异常。

【问题讨论】:

    标签: sql apache-spark dataframe sql-like


    【解决方案1】:

    虽然您可以在 MySQL 中这样做,但更好的解决方案是:

    select max(color = 'red')
    

    我认为以下应该在 Spark 中工作:

    select max(case when color = 'red' then 1 else 0 end)
    

    注意:这假设您只寻找红色。如果您正在寻找 IndianRed,请使用 like

    【讨论】:

    • 实际上我使用的是 collect_set 而不是 group_concat,它给出了相同的结果,但问题是我想在这个结果集 e.t 上应用 case 语句
    • 实际上我使用的是collect_set而不是group_concat,它给出了相同的结果,但问题是我想在collect_set(color)像'red'然后1时在这个结果集ed select case上应用case语句否则 0 结束。但它给出了数据类型不匹配的错误。
    • @Badar 。 . .我的答案中的代码既没有使用group_concat(),也没有使用collect_set(),所以我不明白你的cmets。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 2021-10-16
    • 1970-01-01
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多