2016-12-30 82 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

是的,我會編輯它。 –

相關問題