scala - 使用 Spark 中的地图将日期转换为字符串不起作用?
问题描述
我正在使用 Spark 2.4.5。
我写了以下代码:
val df_join: DataFrame = orders
.join(order_items, orders.col(("order_id")) === order_items.col("order_item_order_id"), "inner")
.withColumn("order_date", to_date(from_unixtime(col("order_date")/1000), "yyyy-MM-dd"))
df.show(false)
+-----------------+----------+--------+---------------+-------------+-------------------+---------------------+------------------------+-------------------+-------------------+
|order_customer_id|order_date|order_id|order_status |order_item_id|order_item_order_id|order_item_product_id|order_item_product_price|order_item_quantity|order_item_subtotal|
+-----------------+----------+--------+---------------+-------------+-------------------+---------------------+------------------------+-------------------+-------------------+
|12143 |2013-11-09|17210 |PENDING_PAYMENT|43051 |17210 |627 |39.99 |1 |39.99 |
|1595 |2013-11-09|17211 |COMPLETE |43052 |17211 |1014 |49.98 |3 |149.94 |
|1595 |2013-11-09|17211 |COMPLETE |43053 |17211 |191 |99.99 |5
df_join.printSchema
root
|-- order_customer_id: integer (nullable = true)
|-- order_date: date (nullable = true)
|-- order_id: integer (nullable = true)
|-- order_status: string (nullable = true)
|-- order_item_id: integer (nullable = true)
|-- order_item_order_id: integer (nullable = true)
|-- order_item_product_id: integer (nullable = true)
|-- order_item_product_price: float (nullable = true)
|-- order_item_quantity: integer (nullable = true)
|-- order_item_subtotal: float (nullable = true)
I tried this :
var comByKeyResult: Dataset[((String, String), (Double, Int))] = df_join
.map(x => ((x(1).toString, x(3).toString), (x(9).toString.toDouble, x(1).toString.toInt)))
当我尝试这样做时:comByKeyResult.take(5).foreach(println)
我有以下错误,我不明白原因:
java.lang.NumberFormatException: For input string: "2013-11-09"
为什么.map(x => ((x(1).toString
不起作用order_date: date (nullable = true)
?
解决方案
推荐阅读
- c# - 不明白为什么它不断抛出 System.InvalidOperationException
- kubernetes - 部署在 kubernetes 上的 open-faas 如何确定何时扩大或缩小功能?
- android - 在 Android 项目中找不到 R 文件
- https - Symfony4 - 创建 https 路由
- python - 解析 krb5.conf 文件的 Python 库
- email - 在 Google Apps 脚本中使用 DriveApp.getFileById 发送多个附件
- javascript - 使用 Lodash 在嵌套对象中分组和合并
- java - 如何实现报警接收器?
- git - Git 跨多个项目共享一组文件
- java - 如何在启动时加载弹簧@PropertySource