如何将数据集转换为<Row>另一个数据集



我的数据集有名为"key(string), value(long)"的列

键的值(如前缀.20171012.111.2222),列值的值如 9999。

我想将数据集转换为一个新的数据集,该数据集将 colmun 键拆分为其他数据集,例如"天、rt、item_id、值"。

怎么做,非常感谢

// input ds looks like this
+--------+-----+
|     key|value|
+--------+-----+
|20171011| 9999|
+--------+-----+
//import the functions you need
import org.apache.spark.sql.functions.{to_date, month, year, dayofmonth}
// ds2 
val ds2 = ds.withColumn("date", to_date($"key", "yyyyMMdd"))
// ds2.show()
+--------+-----+----------+
|     key|value|      date|
+--------+-----+----------+
|20171011| 9999|2017-10-11|
+--------+-----+----------+
// ds3
val ds3 = ds2.withColumn("Month", month($"date"))
  .withColumn("Year", year($"date"))
  .withColumn("Date", dayofmonth($"date"))
// ds3.show()
+--------+-----+----+-----+----+
|     key|value|Date|Month|Year|
+--------+-----+----+-----+----+
|20171011| 9999|  11|   10|2017|
+--------+-----+----+-----+----+

相关内容

  • 没有找到相关文章

最新更新