apache-spark - 在 Pyspark 中将月份名称转换为数字

标签 apache-spark pyspark

+--------+-----+---+----+----+----+----+-----+-----------+-----------+
|Currency|Month|Day|Year|Open|High| Low|Close|     Volume| Market Cap|
+--------+-----+---+----+----+----+----+-----+-----------+-----------+
|   tezos|  Dec| 04|2019|1.29|1.32|1.25| 1.25| 46,048,752|824,588,509|
|   tezos|  Dec| 03|2019|1.24|1.32|1.21| 1.29| 41,462,224|853,213,342|
|   tezos|  Dec| 02|2019|1.25|1.26|1.20| 1.24| 27,574,097|817,872,179|
|   tezos|  Dec| 01|2019|1.33|1.34|1.25| 1.25| 24,127,567|828,296,390|
|   tezos|  Nov| 30|2019|1.31|1.37|1.31| 1.33| 28,706,667|879,181,680|
|   tezos|  Nov| 29|2019|1.28|1.34|1.28| 1.31| 32,270,224|867,085,098|
|   tezos|  Nov| 28|2019|1.26|1.35|1.22| 1.28| 44,240,281|845,073,679|
|   tezos|  Nov| 27|2019|1.24|1.27|1.16| 1.26| 47,723,271|829,672,736|
|   tezos|  Nov| 15|2019|1.22|1.26|1.15| 1.17| 32,203,363|773,992,543|
+--------+-----+---+----+----+----+----+-----+-----------+-----------+

这是我的 pyspark 数据报,如何将月份名称转换为数字???谢谢

最佳答案

使用 from_unixtime 和 unix_timestamp 函数。

示例:

df.show()
#+-----+
#|Month|
#+-----+
#|  Dec|
#|  Nov|
#+-----+  

df.withColumn("mnth_name",from_unixtime(unix_timestamp(col("Month"),'MMM'),'MM')).show()
#+-----+---------+
#|Month|mnth_name|
#+-----+---------+
#|  Dec|       12|
#|  Nov|       11|
#+-----+---------+

关于apache-spark - 在 Pyspark 中将月份名称转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62442352/

相关文章:

scala - 使用匿名函数时的 Spark TaskNotSerializable

apache-spark - Spark ML - 从新数据元素创建特征向量以进行预测

scala - 将匹配案例应用于 Spark 列?

json - 将单行文件中的多个 JSON 对象加载到 PySpark 时为空值

python - 如何在 Databricks 的 PySpark 中使用 Scala 创建的 DataFrame

python - Pyspark 未记录到文件

apache-spark - 将整行作为附加参数传递给 PySpark 中的 UDF

scala - 为什么 Scala 编译器会因缺少 JavaSparkContext 过滤器的参数类型而失败?

python - 如何防止记录 pyspark 'answer received' 和 'command to send' 消息

apache-spark - 在集群 : Initial job has not accepted any resources 上运行 Spark