如何在Dataframe上使用Spark中的DataFrameNaFunctions类提供的函数?

Par*_*jit 8 scala apache-spark

我有一个数据帧,我想使用该数据帧的replace()函数之一 org.apache.spark.sql.DataFrameNaFunctions.

问题:我没有使用dataframe的实例获得智能(建议)中的这些方法.我明确地导入了这个类.

我无法找到任何可以给我演示如何使用这些函数或如何将数据帧转换为类型的东西DataFrameNaFunctions.

我尝试使用asInstanceof[]方法强制转换它但它抛出异常.

eli*_*sah 17

这可能有点令人困惑,但说实话是非常简单的.这是一个小例子:

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|
// +-----+----+
Run Code Online (Sandbox Code Playgroud)

要访问,org.apache.spark.sql.DataFrameNaFunctions您可以致电.na.

  • 呀..你其实是对的.我很抱歉这个愚蠢的问题.但我并不知道.na变量可以访问DataFrameNaFunctions的函数.真的,谢谢你的到来.@eliasah (2认同)