【问题标题】:Unsupported literal type class scala.collection.immutable.HashSet$HashTrieSet不支持的文字类型类 scala.collection.immutable.HashSet$HashTrieSet
【发布时间】:2019-12-28 01:46:38
【问题描述】:

我有一个带有 ID 列表的数据框。我想将其过滤为一组 ID,我使用 .filter() 来完成。

我遇到了这个错误。

java.lang.RuntimeException: Unsupported literal type class scala.collection.immutable.HashSet$HashTrieSet

我的代码很简单。

val setofID = Set("112", "113", "114", "121", "118", "120")

val my_dfFiltered = my_df.filter($"id".isin(setofID)).persist

【问题讨论】:

标签: scala apache-spark apache-spark-sql


【解决方案1】:

Set 不能与isin 一起使用,请使用Seq 并使用类似的可变参数

val setofID = Set("112", "113", "114", "121", "118", "120").toSeq

val my_dfFiltered = my_df.filter($"id".isin(setofID:_*)).persist

或使用接受IterableisInCollection(从Spark 2.4开始),这应该直接与Set一起使用

val my_dfFiltered = my_df.filter($"id".isInCollection(setofID)).persist

【讨论】:

    猜你喜欢
    • 2019-04-21
    • 2019-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 2018-09-12
    • 2020-10-19
    • 1970-01-01
    • 2011-06-21
    相关资源
    最近更新 更多