2017-11-30 11 views
0

をLongTypeをキャストすることはできません私は、検索の多くを行うと、非常に多くの異なる方法を試してみました、私はここに私の最後の試みを掲示しています: 私はのように見えるデータフレームを持っています。は(PySparkに新)DATETYPEエラーに</p> <p>を

txn_dtのdatetime64 [NS] ID

のint64私は別の日付型にtxn_dtに参加し、エラーの種類mistmatchを取得するために、スパークSQLを使用しようとしているので、私は、次のコードを使用して日付をtxn_dtを変換しようとしています:

df = df.withColumn("txn_dt_tmp",df["txn_dt"].cast(DateType())) \ 
             .drop("txn_dt") \ 
             .withColumnRenamed("txn_dt_tmp", "txn_dt") 

しかし

org.apache.spark.sql.AnalysisException: cannot resolve 'CAST(`txn_dt` AS DATE)' due to data type mismatch: cannot cast LongType to DateType; 

を取得

+0

あなたはdf.take(20)の結果を投稿することができますか? (それが非常に大きい場合はそれ以下) – user3689574

答えて

0

次のことを試してみてくださいでした:

from pyspark.sql.functions import unix_timestamp 

df.withColumn('txn_dt',unix_timestamp(txn_dt_tmp,'yyyy-MM-dd').cast("date")) 
0

は、タイムスタンプと、日付データ型としてそれをキャストする 'txn_dt' を変換しよう助けてください。

関連する問題