我正在用
啟動jupyter筆記本。pyspark --driver-class-路徑 /home/statspy/postgresql-42. 2.23.jar --jars /home/statspy/postgresql- 42.2.23.jar
我在jupyter中運行這個:
我在jupyter中運行這個。
import os
jardrv = '/home/statspy/postgresql-42.2.23.jar'/span>
from pyspark.sql import SparkSession
spark = SparkSession.builder.config('spark.driver.extraClassPath', jardrv).getOrCreate()
url = 'jdbc:postgresql:/127.0.0.1/dbname'/span>.
properties = {'user':'postgres', 'password':'secret'} .
df = spark.read.jdbc(url=url, table='tbname', properties=properties)
然后我可以運行:
df.printSchema()
并且我得到了模式。
但是,我想運行這樣的查詢:
spark.sql(""select * from tbname"")
我得到一個錯誤,說表或視圖tbname沒有找到
我需要改變什么才能用spark.sql來運行查詢,而不是使用df?
uj5u.com熱心網友回復:
在使用spark.sql之前,你需要將資料框架保存為tempview。
df.createOrReplaceTempView("tbname"/span>)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/310732.html
標籤:
