2016-09-06 74 views
0

我試過導入pyspark.sql.functions.from_utc_timestamp(timestamp, tz),但它總是顯示無效的語法錯誤。我們如何使用該模塊將曆元時間的一組值轉換爲火星上的UTC?語法錯誤pyspark.sql.functions.from_utc_timestamp(timestamp,tz)

+0

你能否闡述一下代碼,你試過嗎?你建議你導入'pyspark.sql.functions.from_utc_timestamp(timestamp,tz)',這是一個函數調用,因此無效的python(語法錯誤) – AbdealiJK

+0

哦!那麼是的,我嘗試導入pyspark.sql.functions.from_utc_timestamp(timestamp,tz)。我已將附加代碼添加到問題中。 – kaks

+0

我已經用pyspark文檔中的一些代碼用適當的代碼來回答該問題,以便導入該函數 – AbdealiJK

回答

1

一些示例代碼(從文檔拍攝,並修改)做你想做什麼:

>>> from pyspark.sql.functions import from_utc_timestamp 
>>> df = sqlContext.createDataFrame([('1997-02-28 10:30:00',)], ['t']) 
>>> df.select(from_utc_timestamp(df.t, "PST").alias('t')).collect() 
[Row(t=datetime.datetime(1997, 2, 28, 2, 30))] 
+0

謝謝!這工作。但現在我得到一個錯誤的行:df = sqlContext.createDataFrame(logLine,['t']) 說TypeError:無法推斷類型的架構:type'unicode' 我的文件只包含5個紀元時間值。 – kaks

+0

什麼類型是logLine?它是UTC時間戳的元組數組嗎?它的形式應該是[Tuple_of_column_1,Tuple_of_column_2,...]',其中'Tuple_of_column_1'類似於'('1994-05-18 12:30:00','1997-02-28 10:30:00 ','2007-05-02 1:30:00',...)'。 如果它已經是一個文本文件,你可能想使用'sc.textFile'。 我建議您針對與此主題無關​​的問題開設新的SO問題 – AbdealiJK