scala - 替换 Spark DataFrame 中的空值

标签 scala apache-spark dataframe

我在这里看到了一个解决方案,但是当我尝试时它对我不起作用。

首先我导入一个cars.csv文件:

val df = sqlContext.read
              .format("com.databricks.spark.csv")
              .option("header", "true")
              .load("/usr/local/spark/cars.csv")

如下所示:
+----+-----+-----+--------------------+-----+
|year| make|model|             comment|blank|
+----+-----+-----+--------------------+-----+
|2012|Tesla|    S|          No comment|     |
|1997| Ford| E350|Go get one now th...|     |
|2015|Chevy| Volt|                null| null|

然后我这样做:
df.na.fill("e",Seq("blank"))

但是空值没有改变。

谁能帮我 ?

最佳答案

这基本上很简单。您需要创建一个新的 DataFrame .我正在使用 DataFrame df你之前定义的。

val newDf = df.na.fill("e",Seq("blank"))
DataFrame s 是不可变的结构。
每次执行需要存储的转换时,都需要影响转换后的 DataFrame到一个新的值。

关于scala - 替换 Spark DataFrame 中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33376571/

相关文章:

scala - 如何递归获取 Scala map 中包含的每个列表的最后一个元素?

scala - 仅使用 IO monad 中的值,无需先行 IO 操作

oracle - hadoop(sqoop)加载oracle的速度会比SQL loader快吗?

python - 从今天的日期中减去 pandas Dataframe 的值

r - 为什么在读取数据框时我的列名称中出现 X.?

java - Scala 自动装箱和 Java Map

scala - 无法将 ScalaCheck 与 Scala IDE for Eclipse 结合使用

java - Apache Spark 让 SQL 查询更快?

python - 通过 pyspark 加载文件名中包含冒号的 Amazon S3 文件

python - 复杂的请引用另一张表