【问题标题】:Filling null values with the mean of the column in HiveQL and Spark用 HiveQL 和 Spark 中的列的平均值填充空值
【发布时间】:2017-08-07 11:40:13
【问题描述】:

我在 spark 中使用 HiveQL,希望通过 spark 中的列的平均值填充空值。

使用以下代码:

    StringBuilder query = new StringBuilder("select `ts0` as ts ");
    String[] cols = dataFrame.columns();

    for (String col : cols) {
            query.append(",`" + col + "` as " + trimmedCol);
        }

    }

我认为当有空值时我应该使用“case”命令。谁能指导我上面的操作?

【问题讨论】:

    标签: apache-spark hiveql


    【解决方案1】:

    你可以试试这个

    scala> val df = sqlContext.read.format("com.databricks.spark.csv").option("header","true").option("inferSchema","true").load("na_test.csv")
    
    
    scala> df.show()
    
    scala> df.na.fill(10.0,Seq("age"))
    
    
    scala> df.na.fill(10.0,Seq("age")).show
    
    
    
    
    scala> df.na.replace("age", Map(35 -> 61,24 -> 12))).show()
    

    【讨论】:

    • @pazhnivel 括号在最后一行不均匀
    • 我想使用 HIveQL 查询并修改上述查询而不使用 Spark。
    • 上面的答案与我的问题完全无关,我不知道为什么它得到了 2 个正面评价!。我需要一个 HiveQL 查询。
    猜你喜欢
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2020-10-25
    • 2018-09-27
    • 1970-01-01
    相关资源
    最近更新 更多