2016-12-30 18 views

答えて

2
from datetime import datetime 
from pyspark.sql.functions import col,udf 
from pyspark.sql.types import DateType 


rdd = sc.parallelize(['20161231', '20140102', '20151201', '20161124']) 
df1 = sqlContext.createDataFrame(rdd, ['old_col']) 

//UDF to convert string to date 
func = udf (lambda x: datetime.strptime(x, '%Y%M%d'), DateType()) 

df = df1.withColumn('new_col', date_format(func(col('old_col')), 'MM-dd-yyy')) 

df.show() 
+0

ありがとうmrsrinivasを、私はツェッペリンを使用していますが、このコードがエラーなしで実行されますが、私は(アクションまたは変換)を動作することはできませんよ、あなたのコードの結果に。私はSparkにとって非常に新しいです。もし私が何かを見逃しているなら、私を助けてください。 –

+0

最終出力には 'df.show()'を使います。あなたはデータフレームにデータをロードしているかもしれません( 'df1') – mrsrinivas

+0

ありがとうmrsinivas、少し変更が私が行方不明だっただけでした。再度、感謝します。 –

0

これも働いている:

from datetime import datetime 
from pyspark.sql.functions import col,udf,unix_timestamp 
from pyspark.sql.types import DateType 


func = udf(lambda x: datetime.strptime(str(x), '%m%d%y'), DateType()) 

df2 = df.withColumn('date', func(col('InvcDate'))) 
+0

'MM-dd-yyyy'という形式で出力しますか?私はそれが 'yyyy-MM-dd'でそれを与えると思う。 – mrsrinivas

+0

ええ、私はそれを編集します。 –

関連する問題