我正在运行snappydata v0.9的docker镜像。从该映像内部,我可以对数据库运行查询。但是,我不能从我的机器上的第二台服务器上执行此操作。
我将python文件从snappydata复制到安装的pyspark中(在导入中编辑snappysession到SnappySession ),并且(基于对Unable to connect to snappydata store with spark-shell command的回答),我编写了以下脚本(这是一些货物崇拜编程,因为我是从docker镜像中的python代码复制的--欢迎提出改进建议):
import pyspark
from pyspark.context import SparkContext
from pyspark.sql import SparkSession, SQLContext
from pyspark.sql.snappy import SnappyContext
from pyspark.storagelevel import StorageLevel
SparkContext._ensure_initialized()
spark = SparkSession.builder.appName("test") \
.master("local[*]") \
.config("snappydata.store.locators", "localhost:10034") \
.getOrCreate()
spark.sql("SELECT col1, min(col2) from TABLE1")然而,我得到了一个回溯:
pyspark.sql.utils.AnalysisException: u'Table or view not found: TABLE1我已经向wireshark验证了我的程序正在与docker镜像通信(TCP follow流显示回溯消息和scala回溯)。我的假设是snappydata集群中的权限设置是错误的,但是浏览日志和配置并没有显示任何明显的信息。
我该如何继续呢?
-编辑1
我正在运行的新代码(仍然得到相同的错误),结合了配置中的更改建议,并确保我获得了一个SnappySession:
from pyspark.sql.snappy import SnappySession
snappy = SnappySession.builder.appName("test") \
.master("local[*]") \
.config("spark.snappydata.connection", "localhost:1527") \
.getOrCreate()
snappy.sql("SELECT col1, min(col2) from TABLE1")发布于 2017-08-24 10:20:44
您是否可以将您的配置更改为以下内容-
.config("spark.snappydata.connection",“本地主机:1527”)
0.9中不再有'snappydata.store.locators‘属性。您可以在此处参考文档- https://github.com/SnappyDataInc/snappydata/blob/master/docs/deployment.md#connectormode
发布于 2017-08-24 11:05:04
此外,您还需要创建一个SnappySession来访问快捷的托管表。就像这样……
spark = SparkSession.builder.appName("test") \
.master("local[*]") \
.config("spark.snappydata.connection", "localhost:1527") \
.getOrCreate()
snappy = SnappySession(spark)
snappy.sql("SELECT col1, min(col2) from TABLE1")https://stackoverflow.com/questions/45851791
复制相似问题