相关疑难解决方法(0)

如何检测Spark DataFrame是否具有列

当我DataFrame在Spark SQL中创建一个JSON文件时,如何在调用之前判断给定列是否存在.select

示例JSON模式:

{
  "a": {
    "b": 1,
    "c": 2
  }
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要做的:

potential_columns = Seq("b", "c", "d")
df = sqlContext.read.json(filename)
potential_columns.map(column => if(df.hasColumn(column)) df.select(s"a.$column"))
Run Code Online (Sandbox Code Playgroud)

但我找不到一个好的功能hasColumn.我得到的最接近的是测试列是否在这个有点笨拙的数组中:

scala> df.select("a.*").columns
res17: Array[String] = Array(b, c)
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark apache-spark-sql

39
推荐指数
5
解决办法
5万
查看次数

使用空/空字段值创建新的Dataframe

我正在从现有数据框架创建一个新的Dataframe,但需要在这个新DF中添加新列(下面代码中的"field1").我该怎么办?工作示例代码示例将不胜感激.

val edwDf = omniDataFrame 
  .withColumn("field1", callUDF((value: String) => None)) 
  .withColumn("field2",
    callUdf("devicetypeUDF", (omniDataFrame.col("some_field_in_old_df")))) 

edwDf
  .select("field1", "field2")
  .save("odsoutdatafldr", "com.databricks.spark.csv"); 
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark apache-spark-sql

25
推荐指数
2
解决办法
5万
查看次数

标签 统计

apache-spark ×2

apache-spark-sql ×2

dataframe ×2

scala ×2