如何为给定列添加行和值?

时间:2017-06-26 20:34:27

标签: java apache-spark apache-spark-sql

所以我现在拥有以下DataFrame,其值如下:

Dataset<Row> ds = sparkSession.read().text(pathFile);
+-------+--------+
| VALUE |  TIME  |
+-------+--------+
| 5000  |        |
+-------+--------+

其中TIME没有值(或为空)。如何在TIME列中添加值?我稍后会在我的程序中添加更多行,并且我需要为VALUE和TIME列添加/追加值。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

  

如何向TIME列添加值?

  

TIME没有值(或为空)

让我相信您可能想要探索na运营商。

  

na:DataFrameNaFunctions 返回用于处理缺失数据的DataFrameNaFunctions。

反过来为您提供fill缺失值的方式。

  

fill(value:String,cols:Array [String]):DataFrame 返回一个新的DataFrame,它替换指定字符串列中的空值。如果指定的列不是字符串列,则忽略它。

如果您只想替换,请使用withColumn运算符。

  

withColumn(colName:String,col:Column):DataFrame 通过添加列或替换具有相同名称的现有列来返回新的数据集。

作为col的值,您可以使用lit函数。

  

lit(文字:任意):列创建一个文字值列。

另一项要求是......

  

还要添加更多行

那是union运营商。

  

union(其他:Dataset [T]):Dataset [T] 返回包含此数据集中的行和另一个数据集的新数据集。这相当于SQL中的UNION ALL。