【发布时间】:2016-03-07 19:09:02
【问题描述】:
在发布此问题之前,我阅读了 2 小时的 spark 文档。
我有一个 Spark 数据框。其中有 9 列。我想过滤 3 列(A、B、C)上的数据,其中包含字符串 - “无”。我尝试使用过滤器选项来做到这一点。它适用于单个列,但不适用于列组。
val cleanedDF = joinedDF
.filter(joinedDF("A") !== ("None")
.joinedDF("B") !== ("None")
.joinedDF("C") !== ("None"))
这适用于单个列,但我如何才能为一组列提供一些东西?即仅在所有列中都有“无”时过滤掉列,如下所示。有可能吗?
val cleanedDF = joinedDF.filter(
joinedDF("A") !== ("None") and
joinedDF("B") !== ("None") and
joinedDF("C") !== ("None"))
我还尝试过转换为 SQL 模板并对其进行查询。但是由于我的过滤器选项是一个字符串,所以我不能在 where 子句中使用它。谁能告诉我spark-sql 中正确的转义字符是什么?
例子:
joinedDF.registerTempTable("df")
sqlContext.sql("SELECT * FROM df where B = `None` " ).show()
任何建议或帮助表示赞赏!
谢谢
【问题讨论】:
标签: sql scala apache-spark dataframe apache-spark-sql