Как использовать функции, предоставляемые классом DataFrameNaFunctions в Spark, в фрейме данных?

у меня есть фрейм данных, и я хочу использовать один из заменить() функции org.apache.spark.sql.DataFrameNaFunctions на этом фрейме данных.

: Я не получаю эти методы в intelligence (suggestions) с экземпляром dataframe. Я импортировал этот класс явно.

Я не могу найти ничего, что может дать мне некоторую демонстрацию того, как использовать эти функции или как привести dataframe к типу DataFrameNaFunctions.

Я пытался бросить он с помощью asInstanceof[] метод, но он бросает исключение.

1 ответов


Это может быть немного запутанным, но это довольно просто, чтобы быть честным. Вот небольшой пример:

scala> val df = sqlContext.read.format("com.databricks.spark.csv").option("header","true").option("inferSchema","true").load("na_test.csv")
// df: org.apache.spark.sql.DataFrame = [name: string, age: int]

scala> df.show()
// +-----+----+
// | name| age|
// +-----+----+
// |alice|  35|
// |  bob|null|
// |     |  24|
// +-----+----+

scala> df.na.fill(10.0,Seq("age"))
// res4: org.apache.spark.sql.DataFrame = [name: string, age: int]

// scala> df.na.fill(10.0,Seq("age")).show
// +-----+---+
// | name|age|
// +-----+---+
// |alice| 35|
// |  bob| 10|
// |     | 24|
// +-----+---+

scala> df.na.replace("age", Map(35 -> 61,24 -> 12))).show()
// +-----+----+
// | name| age|
// +-----+----+
// |alice|  61|
// |  bob|null|
// |     |  12|
// +-----+----+

получить доступ к org.apache.spark.sql.DataFrameNaFunctions можно назвать .na.