我是PySpark的新手。我用熊貓拉了一個csv文件。 並使用registerTempTable函數創建臨時表。PySpark SQL中的左和右函數
from pyspark.sql import SQLContext
from pyspark.sql import Row
import pandas as pd
sqlc = SQLContext(sc)
aa1 = pd.read_csv("D:\mck1.csv")
aa2 = sqlc.createDataFrame(aa1)
aa2.show()
+--------+-------+----------+------------+---------+------------+-------------------+
| City| id|First_Name|Phone_Number|new_date|new code| New_date|
+--------+-------+----------+------------+---------+------------+-------------------+
|KOLKATTA|9000007| AAA| 1111119411| 20080714| 13|2016-08-16 00:00:00|
|KOLKATTA|9000007| BBB| 1111119421| 20080714| 13|2016-08-06 00:00:00|
|KOLKATTA|9000007| CCC| 1111119461| 20080714| 13|2016-08-13 00:00:00|
|KOLKATTA|9000007| DDD| 1111119471| 20080714| 13|2016-08-27 00:00:00|
|KOLKATTA|9000007| EEE| 1111119491| 20080714| 13|2016-08-15 00:00:00|
|KOLKATTA|9111147| FFF| 1111119401| 20080714| 13|2016-08-24 00:00:00|
|KOLKATTA|9585458| FORMULA| 1111110112| 19990930| 13|2016-08-16 00:00:00|
|KOLKATTA|9569878| APPLEII| 1111110132| 19990930| 13|2016-08-06 00:00:00|
aa3 = aa2.registerTempTable("mytable1")
sqlc.sql(""" select right(phone_number,4) from mytable1 """).show()
現在,我嘗試使用的電話號碼右邊拉過去四個字符使用權(PHONE_NUMBER,4)和麪向followung錯誤
爲什麼pyspark不支持左右功能? 我怎樣才能爲一列提供四個字符的權利?
從技術文檔我們可以使用substring(phone_number,1,4)作爲left(phone_number,4),我怎樣才能使用子字符串r ight(phone_number,4) – Green
已編輯 - 請參閱上面的註釋 – flyingmeatball