fro*_*ark 6 type-conversion pyspark
(PySpark 新手)
我做了很多搜索并尝试了很多不同的方式,我在这里发布我的最后一次尝试:我的数据框看起来像:
txn_dt datetime64[ns] id int64
我正在尝试使用 Spark SQL 将 txn_dt 连接到另一个日期类型并获取错误类型不匹配,因此我尝试使用以下代码将 txn_dt 转换为日期:
df = df.withColumn("txn_dt_tmp",df["txn_dt"].cast(DateType())) \
.drop("txn_dt") \
.withColumnRenamed("txn_dt_tmp", "txn_dt")
Run Code Online (Sandbox Code Playgroud)
但得到
org.apache.spark.sql.AnalysisException: cannot resolve 'CAST(`txn_dt` AS DATE)' due to data type mismatch: cannot cast LongType to DateType;
Run Code Online (Sandbox Code Playgroud)
请帮忙
您能否尝试以下操作:
from pyspark.sql.functions import unix_timestamp
df.withColumn('txn_dt',unix_timestamp(txn_dt_tmp,'yyyy-MM-dd').cast("date"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12520 次 |
| 最近记录: |