试图删除其中Spark数据框列包含空白字符串的行。最初做val df2 = df1.na.drop()
但事实证明,这些值中的很多被编码为""
。从Spark数据框中删除空白字符串
我卡在使用Spark 1.3.1,也不能依靠DSL。 (导入spark.implicit_不工作。)
试图删除其中Spark数据框列包含空白字符串的行。最初做val df2 = df1.na.drop()
但事实证明,这些值中的很多被编码为""
。从Spark数据框中删除空白字符串
我卡在使用Spark 1.3.1,也不能依靠DSL。 (导入spark.implicit_不工作。)
从数据框中删除东西需要filter()
。
newDF = oldDF.filter("colName != ''")
还是我误解你的问题?
如何使用Where子句 –
'WHERE colName IS NOT NULL'或'WHERE colName IS NOT EMPTY'来写这个东西......我想。 – Kristian
或者,用DataFrames/Datasets,'oldDF.filter($“colName”=!=“”)'。别忘了'import org.apache.spark.sql.functions._ import org.apache.spark.sql.types._' –
我也是新的火花所以我不知道下面提到的代码是否更复杂或没有,但它的工作原理。
这里我们正在创建udf,它将空值转换为null。
sqlContext.udf().register("convertToNull",(String abc) -> (abc.trim().length() > 0 ? abc : null),DataTypes.StringType);
上面的代码后,你可以在选择子句中使用“convertToNull”(适用于字符串),使所有字段为空这是空白的,比使用.na()。拖放()。
crimeDataFrame.selectExpr("C0","convertToNull(C1)","C2","C3").na().drop()
注:您可以使用同样的方法在阶。 https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-sql-udfs.html
如果有人不想用空白字符串删除记录,但只是将空白字符串转换为某个常量值。
val newdf = df.na.replace(df.columns,Map("" -> "0")) // to convert blank strings to zero
newdf.show()
你想用空白字符串做什么?放下线? – eliasah