spark sql 入門操作

2021-08-10 11:55:20 字數 1892 閱讀 5180

開始

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...