相关疑难解决方法(0)

在Apache Spark 1.3中向Data Frame附加一列

是否有可能以及将列添加到数据框的最有效的方法是什么?

更具体地,列可以用作现有数据帧的行ID.

在简化的情况下,从文件读取而不是标记它,我可以想到如下(在Scala中),但它完成了错误(在第3行),并且无论如何看起来不是最好的路线:

var dataDF = sc.textFile("path/file").toDF() 
val rowDF = sc.parallelize(1 to DataDF.count().toInt).toDF("ID") 
dataDF = dataDF.withColumn("ID", rowDF("ID")) 
Run Code Online (Sandbox Code Playgroud)

scala dataframe apache-spark

51
推荐指数
3
解决办法
8万
查看次数

如何检测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 ×3

dataframe ×3

scala ×3

apache-spark-sql ×2