Cau*_*der 3 scala apache-spark apache-spark-sql
我有一个包含 ID 列表的数据框。我想将其过滤为一组 ID,我使用 .filter() 来做到这一点。
我遇到了这个错误。
java.lang.RuntimeException: Unsupported literal type class scala.collection.immutable.HashSet$HashTrieSet
Run Code Online (Sandbox Code Playgroud)
我的代码很简单。
val setofID = Set("112", "113", "114", "121", "118", "120")
val my_dfFiltered = my_df.filter($"id".isin(setofID)).persist
Run Code Online (Sandbox Code Playgroud)
Set不使用isin,使用 aSeq并使用 varags 之类的
val setofID = Set("112", "113", "114", "121", "118", "120").toSeq
val my_dfFiltered = my_df.filter($"id".isin(setofID:_*)).persist
Run Code Online (Sandbox Code Playgroud)
或使用isInCollection(自 Spark 2.4 起)接受Iterable,这应该直接与Set
val my_dfFiltered = my_df.filter($"id".isInCollection(setofID)).persist
Run Code Online (Sandbox Code Playgroud)