我正在尝试使用麦哲伦库在pyspark中运行简单的测试代码来打印点,但我遇到了未定义sc上下文的问题。
如果我使用建议的命令$SPARK_HOME/bin/spark-submit --packages harsha2010:magellan:1.0.2-s_2.10从命令行运行它,那么一切都会正常工作,因为sc是自动导入的,但是如果我在eclipse中作为一个独立的应用程序运行它,它不能识别sc。
我已经尝试了初始化的所有组合,包括这段代码:
from pyspark import SparkConf,SparkContext
from magellan.types import Point
from pyspark.sql import Row, SQLContext
#from magellan-master.python.magellan.context import sc
sc = SparkContext(appName="MyGeoFencing")
#sql = SQLContext(sc)
#from magellan.context import sc
#from magellan.context import sc
#from magellan.context import SQLContext
PointRecord = Row("id", "point")
#sparkConf = SparkConf().setAppName("MyGeoFencing")
#sc = SparkContext(conf=sparkConf)
#sql = SQLContext(sc)
sqlCont = SQLContext(sc)
points = sqlCont.parallelize([
(0, Point(-1.0, -1.0)),
(1, Point(-1.0, 1.0)),
(2, Point(1.0, -1.0))]).map(lambda x: PointRecord(*x)).toDF()
points.show()这就是sqlCont没有parallelize方法的问题。我甚至尝试过直接从magellan.context导入sc,但也不起作用。
当我使用scala时,同样的问题也存在!
你知道这应该如何工作吗?
谢谢!
发布于 2017-06-25 00:23:44
这对我来说很有效:
sc = spark.sparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *
sqlContext = SQLContext(sc)https://stackoverflow.com/questions/39221971
复制相似问题