sql - 如何在以下情况下在Spark和Hive查询中写入

标签 sql apache-spark hadoop hive

我的数据是:

User id     product_id    action

1                apple             incart
1                 apple            purchased 
1                 banana         incart
2                 banana         incart
2                 banana         purchased
3                 carrot            incart

我需要输出为user_id和product_id,其操作仅具有因果关系而不是购买的。

最佳答案

val df1 = df.filter(col("action") === "purchased")
val df2 = df.filter(col("action") === "incart")
df2.join(df1,df2.col("User_id") === df1.col("User_id") && df2.col("product_id") === df1.col("product_id"),"leftanti").drop("action").show

关于sql - 如何在以下情况下在Spark和Hive查询中写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52179589/

相关文章:

mysql - 使用 UNION 的子查询

sql - 文字字段 Google Sheets QUERY

sql - 是否可以通过 ping 网站获得一些有用的信息?

scala - 如何检查列表是否包含所有相同的值?

hadoop -/etc/hosts文件如何影响datanode和namenode的连接?

mysql - SQL - 子字符串并同时选择 *

apache-spark - Hadoop copyToLocalFile 在 Yarn 集群模式下失败

scala - 如何使用scala并行化spark中的for循环?

hadoop - 在 MapReduce 程序的 Reduce 方法中使用 iterable 的集合对象的类型是什么

hadoop - 使用 Pig 计算两列之间的平均值