当我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)