【问题标题】:Any example of Apache Spark org.apache.spark.sql.DataFrameNaFunctions usage? ..drop() doesn't seem to work?Apache Spark org.apache.spark.sql.DataFrameNaFunctions 用法的任何示例? ..drop() 似乎不起作用?
【发布时间】:2017-02-23 16:03:35
【问题描述】:

我正在尝试过滤具有 NA 值的数据集..找到 org.apache.spark.sql.DataFrameNaFunctions 但似乎它的 drop() 或 drop("any") 似乎无法正常工作..任何人都尝试过..或者请分享 java 中的用法..谢谢...

    import org.apache.spark.sql.DataFrameNaFunctions;
    Dataset<Row> inputDS=spark.read().option("header","true").
                                 csv("inputfile.csv");
    inputDS.show();

    //Updated dataset...remove null or NAN 
    DataFrameNaFunctions inputDatasetsansNullorNAN=new DataFrameNaFunctions(inputDS);
    Dataset<Row> inputDSnulldropped=inputDatasetsansNullorNAN.drop();
    inputDSnulldropped.show();

............ 输入文件

name item

1.爱丽丝,牛奶 2.鲍勃,空 3. 不适用,
4.测试,一个 5. 不适用,不适用 6.空,不适用 7.鲍勃,北美 8. 9.

输出

名称项目 1.爱丽丝牛奶 2.鲍勃空 3.测试一个 4.NA NA 5.null 不适用 6.鲍勃 NA

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    DataFrameNaFunctions 是从数据框的 na 方法创建的,所以你应该这样做:

    val withoutNulls = inputDs.na.drop()
    

    另外,请注意 csv 中的 null 是通过没有值来实现的(例如 3,,4 表示 3 和 4 之间的列为 null)。如果您使用类似“null”字符串的东西,那么 na 函数将不起作用。相反,您可能会执行以下操作:

    val withoutNulls = inputDs.filter(!($"columnName" === "null"))
    

    【讨论】:

    • 谢谢.. 从 na 获取 DataframeNAFunctions 并使用 drop 工作。我尝试了另一个 sn-p 的值,例如 NA 或 null..但没有使用 java... inputDS.filter(!($item=="null"))
    • 抱歉,=== 是 scala 的简写。试试 inputDs.filter(col("columnName").notEqual("null"))
    猜你喜欢
    • 2012-02-14
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    相关资源
    最近更新 更多