Den*_*nis 16 python hadoop apache-spark pyspark
所以,当从pyspark运行时我会输入(没有指定任何上下文):
df_openings_latest = sqlContext.sql('select * from experian_int_openings_latest_orc')
Run Code Online (Sandbox Code Playgroud)
..它工作正常.
但是,当我运行我的脚本时spark-submit
,就像
spark-submit script.py
我把以下内容放入
from pyspark.sql import SQLContext
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName('inc_dd_openings')
sc = SparkContext(conf=conf)
sqlContext = SQLContext(sc)
df_openings_latest = sqlContext.sql('select * from experian_int_openings_latest_orc')
Run Code Online (Sandbox Code Playgroud)
但它给了我一个错误
pyspark.sql.utils.AnalysisException:你找不到:experian_int_openings_latest_orc;'
所以它没有看到我的表.
我究竟做错了什么?请帮忙
PS Spark版本在Amazon EMR上运行1.6
zer*_*323 25
Spark 2.x
如果SparkSession
在未启用Hive支持的情况下创建Spark 2.x,则可能会出现同样的问题.
Spark 1.x
这很简单.当您使用PySpark shell时,Spark已经使用Hive支持构建,默认SQLContext
实现(可用作一个sqlContext
)是HiveContext
.
在您的独立应用程序中,您使用plain SQLContext
,它不提供Hive功能.
假设配置的其余部分是正确的,只需替换:
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
Run Code Online (Sandbox Code Playgroud)
同
from pyspark.sql import HiveContext
sqlContext = HiveContext(sc)
Run Code Online (Sandbox Code Playgroud)
Mik*_*tra 10
在Spark 2.x(Amazon EMR 5+)中,spark-submit
如果您不启用这样的Hive支持,您将遇到此问题:
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("yarn").appName("my app").enableHiveSupport().getOrCreate()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20876 次 |
最近记录: |