取消
顯示的結果
而不是尋找
你的意思是:

如何改變引發的SQL模式

迪
新的因素

我新的火花,剛剛開始一個在線pyspark教程。我上傳的json數據DataBrick和寫的命令如下:

df = sqlContext。sql (“SELECT * FROM people_json”)

df.printSchema ()

從pyspark.sql。導入類型*

data_schema = [StructField(“年齡”,IntegerType(),真的),StructField(“名字”,StringType(),真的))

final_struc = StructType(字段= data_schema)

# # #教程說運行此命令

df = spark.read.json (people_json,模式= final_struc)

# # #但這不是工作。為什麼這是不工作嗎?什麼工作?謝謝!

1接受解決方案

接受的解決方案

User16830374456
貢獻者

第一部分你的查詢

df = sqlContext。sql (“SELECT * FROM people_json”) df.printSchema ()

是創建

df
DataFrame通過閱讀現有的表。

你的第二部分查詢使用

spark.read.json
這是期待一個文件。例如,下麵的代碼做的工作:

從pyspark.sql。導入類型*data_schema = [StructField('age', IntegerType(), True), StructField('name', StringType(), True)] final_struc = StructType(fields=data_schema) df = spark.read.json("/my/directory/people.json", schema=final_struc) df.show()

輸出是:

+ - - - + - - - - - - - +歲| | |名稱+ - - - + - - - - - - - +零Michael | | | | | 30安迪| | 19 |賈斯汀| + - - - + - - - - - - - +

如果你想改變表的模式基於你的第一個查詢,你可以

1。執行SQL,如火花

df.createOrReplaceTempView (df) df2 =火花。sql(“選擇演員(int)歲年齡、投(名稱字符串)的名字從df”)

2。使用PySpark DataFrame列/模式

從pyspark.sql。類型進口IntegerType df2 = df。withColumn(“時代”,df(“年齡”).cast (IntegerType ()))

HTH !

在原帖子查看解決方案

2回答2

User16830374456
貢獻者

第一部分你的查詢

df = sqlContext。sql (“SELECT * FROM people_json”) df.printSchema ()

是創建

df
DataFrame通過閱讀現有的表。

你的第二部分查詢使用

spark.read.json
這是期待一個文件。例如,下麵的代碼做的工作:

從pyspark.sql。導入類型*data_schema = [StructField('age', IntegerType(), True), StructField('name', StringType(), True)] final_struc = StructType(fields=data_schema) df = spark.read.json("/my/directory/people.json", schema=final_struc) df.show()

輸出是:

+ - - - + - - - - - - - +歲| | |名稱+ - - - + - - - - - - - +零Michael | | | | | 30安迪| | 19 |賈斯汀| + - - - + - - - - - - - +

如果你想改變表的模式基於你的第一個查詢,你可以

1。執行SQL,如火花

df.createOrReplaceTempView (df) df2 =火花。sql(“選擇演員(int)歲年齡、投(名稱字符串)的名字從df”)

2。使用PySpark DataFrame列/模式

從pyspark.sql。類型進口IntegerType df2 = df。withColumn(“時代”,df(“年齡”).cast (IntegerType ()))

HTH !

bhanu2448
新的貢獻者二世
歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map