開始
from pyspark.sql import sparksession
spark = sparksession \
.builder \
.config("spark.some.config.option", "some-value") \
.getorcreate()
建立dataframe# spark is an existing sparksession
df = spark.read.json("/yx/people.json")
# displays the content of the dataframe to stdout
df.show()
# +----+-------+
# | age| name|
# +----+-------+
# |null|michael|
# | 30| andy|
# | 19| justin|
# +----+-------+
資料操作(型別化)df.printschema() #
'''結果:
root
|-- age: long (nullable = true)
|-- name: string (nullable = true)
'''df.select('name').show() #
'''結果:
+-------+
| name|
+-------+
|michael|
| andy|
| justin|
+-------+
'''df.select(df['name'],df['age'] + 10).show()
'''結果:
+-------+----------+
| name|(age + 10)|
+-------+----------+
|michael| null|
| andy| 40|
| justin| 29|
+-------+----------+
'''
sql化程式設計df.createorreplacetempview('people') #建立一張臨時表,只在當前會話生效
df.createglobaltempview("people1") # 建立一張全域性臨時表,在所有會話中生效
sqldf = spark.sql('select * from people')
sqldf1 = spark.sql('select * from global_temp.people1')
sqldf2 = spark.newsession().sql('select * from people')#
sqldf3 = spark.newsession().sql('select * from global_temp.people')# 成功
sqldf.show() #成功
sqldf1.show() #成功
sqldf2.show() #失敗:'table or view not found: people; line 1 pos 14'
sqldf3.show() #成功
'''結果:
+----+-------+
| age| name|
+----+-------+
|null|michael|
| 30| andy|
| 19| justin|
+----+-------+
'''
Spark SQL 常用操作
packagesqltext importorg.apache.spark.importorg.apache.spark.sql.sqlcontext importorg.apache.spark.sql.dataframe importorg.apache.spark.sql.types.impo...
Spark SQL操作Hive實戰
在目前企業級 spark大資料開發中,大多數情況下都是採用hive來作為資料倉儲的。spark提供了對hive的支援,spark通過hivecontext可以直接操作hive中的資料。基於hivecontext,我們可以使用sql hql兩種方式來編寫sql語句 對hive進行操作,包括 建立表 刪...
SparkSQL操作Hive資料來源
將hive安裝目錄中conf目錄下的hive site.xml拷貝至spark安裝目錄下的conf目錄。然後啟動sparkshell,執行 前者為元資料,後者為hive中的庫,現在在命令列中已經可以直接操作hive了。package main.com.sh import org.apache.spa...