Windows(Spyder):如何使用pyspark

时间:2017-03-05 05:57:37

标签: apache-spark pyspark databricks

我使用以下代码使用pyspark

读取csv文件
import os
import sys

os.environ["SPARK_HOME"] = "D:\ProgramFiles\spark-2.1.0-bin-hadoop2.7"
os.environ["PYLIB"] = os.environ["SPARK_HOME"] + "/python/lib"
sys.path.insert(0, os.environ["PYLIB"] +"/py4j-0.10.4-src.zip")
sys.path.insert(0, os.environ["PYLIB"] +"/pyspark.zip")

from pyspark import SparkConf
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql.types import *

conf = SparkConf() 
conf.setMaster('local') 
conf.setAppName('test')
sc = SparkContext(conf=conf)

sqlContext = SQLContext(sc)

df = qlContext.read.format("com.databricks.spark.csv").schema(customSchema).option("header", "true").option("mode", "DROPMALFORMED").load("iris.csv")

df.show()

错误如下: -

  

文件"",第1行,in       df = sqlContext.read.format(" com.databricks.spark.csv")。schema(customSchema).option(" header",   " true")。选项("模式"," DROPMALFORMED")。load(" iris.csv")

     

文件   " d:\ PROGRAMFILES \火花2.1.0彬hadoop2.7 \蟒\ lib中\ pyspark.zip \ pyspark \ SQL \ context.py&#34 ;,   第464行,正在阅读中       返回DataFrameReader(self)

     

文件   " D:\ ProgramFiles \ spark-2.1.0-bin-hadoop2.7 \ python \ lib \ pyspark.zip \ pyspark \ sql \ readwriter.py",第70行, init       self._jreader = spark._ssql_ctx.read()

     

文件   " d:\ PROGRAMFILES \火花2.1.0彬hadoop2.7 \蟒\ lib中\ py4j-0.10.4-src.zip \ py4j \ java_gateway.py&#34 ;,   第1133行,致电       回答,self.gateway_client,self.target_id,self.name)

     

文件   " d:\ PROGRAMFILES \火花2.1.0彬hadoop2.7 \蟒\ lib中\ pyspark.zip \ pyspark \ SQL \ utils.py&#34 ;,   第79行,装饰       提出IllegalArgumentException(s.split(':',1)[1],stackTrace)

     

IllegalArgumentException:"实例化时出错   ' org.apache.spark.sql.internal.SessionState':"

1 个答案:

答案 0 :(得分:0)

以上读取csv的方式应用于spark版本<2.0.0

对于火花> 2.0.0 您需要使用spark会话进行阅读,

spark.read.csv("some_file.csv", header=True, mode="DROPMALFORMED", schema=schema)

(spark.read
 .schema(schema)
 .option("header", "true")
 .option("mode", "DROPMALFORMED")
 .csv("some_file.csv"))