2016-11-11 5 views
1

PySparkの新機能です。私はパンダを使ってCSVファイルを引っ張った。 そして、registerTempTable関数を使用して一時テーブルを作成しました。PySpark SQLのLEFTとRIGHT関数

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() 

は今、私はとfollowungエラー直面(4、PHONE_NUMBER)権利を使用して、電話番号の右を使用して、最後の4つの文字を引っ張ってみてください

​​

pysparkは、左右の機能をサポートしていないのはなぜ? 1つの列に対して4文字分の権利を取得するにはどうすればよいですか?

答えて

5

documentationを見て、あなたは部分文字列関数を試しましたか?あなたのコメントあたり

pyspark.sql.functions.substring(str, pos, len)[source] 

EDIT

、あなたはこのような最後の4を取得することができます:

from pyspark.sql.functions import substring 

df = sqlContext.createDataFrame([('abcdefg',)], ['s',]) 
df.select(substring(df.s, -4, 4).alias('s')).collect() 
+0

ドキュメントから左(phone_number、4)に部分文字列(phone_number、1,4)を使うことができます。どのようにしてrに部分文字列を使うことができますか? – Green

+0

編集済み - 上のコメントを参照してください – flyingmeatball

0

代わりに右の、RPADで試してみてください。

sqlc.sql(""" select rpad(phone_number, 4, phone_number) from mytable1 """).show() 
+0

面倒なエラー:Py4JJavaError:o55.sqlの呼び出し中にエラーが発生しました。 :java.util.noSuchElementException:キーが見つかりません:rpad – Green

関連する問題