我正在尝试替换或更新数据帧中的某些特定列值,因为我们知道Dataframe是不可变的,我正在尝试转换为新的数据帧而不是更新或替换。
我按照Spark文档中的说明尝试了 dataframe.replace ,但是它给了我错误错误:值替换不是org.apache.spark.sql.DataFrame的成员
我试过下面的选项。为了传递多个值,我在数组中传递
val new_df= df.replace("Stringcolumn", Map(array("11","17","18","10"->"12")))
但我收到错误
错误:使用备选方法重载方法值数组
非常感谢帮助!!
答案 0 :(得分:1)
要访问 org.apache.spark.sql.DataFrameNaFunctions ,例如替换,您必须致电.na
。所以你的代码看起来应该是这样的,
import com.google.common.collect.ImmutableMap
df.na.replace("Stringcolumn", Map(10 -> 12, 11 -> 17))
请参阅here以获取DataFrameNaFunctions的所有列表以及如何使用它们