web-dev-qa-db-ja.com

Spark DataFrameのnull値を置換

ここで解決策を見ましたが、試したときにうまくいきませんでした。

まず、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"))

ただし、null値は変更されませんでした。

誰も私を助けることができますか?

16
Gavin Niu

これは基本的に非常に簡単です。新しいDataFrameを作成する必要があります。前に定義したDataFrame dfを使用しています。

val newDf = df.na.fill("e",Seq("blank"))

DataFramesは不変構造です。保存する必要のある変換を実行するたびに、変換されたDataFrameを新しい値に変更する必要があります。

28
eliasah

Javaこの方法で同じことを達成できます

Dataset<Row> filteredData = dataset.na().fill(0);
4
Bhagwati Malav