使用Scala中的值列表过滤Spark Dataframe

时间:2018-09-25 19:38:38

标签: scala apache-spark dataframe

我正在尝试使用SparkSession从配置单元表创建数据框,如下所示。创建完成后,我将按照ID列表过滤行。

val myDF = spark.sql("select * from myhivetable")
val someDF =  mfiDF.where(mfiDF("id").isin(myList:_*))

代替这种方法,我可以通过以下方式查询配置单元表:

val myDF = spark.sql("select * from myhivetable").where (("id").isin(myList:_*))

当我这样尝试时,出现编译错误。

有人可以为此建议最好的方法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

您还可以进行内部联接以删除不需要的ID,如下所示可能会起作用。

val ids = sc.parallelize(myList).toDF("id")
someDF.join(ids, ids.id === someDF.id)