2017-08-02 7 views
-1

私はspark 2.1.0を使用しています。私はpysparkでtimestamp列を作成できません。私は以下のコードスニペットを使用しています。私はPysparkタイムスタンプ列を作成する

assertion error:col should be Column

を取得しています

df=df.withColumn('Age',lit(datetime.now())) 

あなたのコードスニペットからのデータフレームを持っていて、すべての行の同じタイムスタンプをしたいと仮定すると、

答えて

2

助けてください助けてください。

ダミーデータフレームを作成しましょう。

>>> dict = [{'name': 'Alice', 'age': 1},{'name': 'Again', 'age': 2}] 
>>> df = spark.createDataFrame(dict) 

>>> import time 
>>> import datetime 
>>> timestamp = datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S') 
>>> type(timestamp) 
<class 'str'> 

>>> from pyspark.sql.functions import lit,unix_timestamp 
>>> timestamp 
'2017-08-02 16:16:14' 
>>> new_df = df.withColumn('time',unix_timestamp(lit(timestamp),'yyyy-MM-dd HH:mm:ss').cast("timestamp")) 
>>> new_df.show(truncate = False) 
+---+-----+---------------------+ 
|age|name |time     | 
+---+-----+---------------------+ 
|1 |Alice|2017-08-02 16:16:14.0| 
|2 |Again|2017-08-02 16:16:14.0| 
+---+-----+---------------------+ 

>>> new_df.printSchema() 
root 
|-- age: long (nullable = true) 
|-- name: string (nullable = true) 
|-- time: timestamp (nullable = true) 
関連する問題