Apache spark 加载本地文件时spark_会话和sqlContext之间的差异
我尝试使用spark_会话和sqlContext将本地文件作为数据帧加载Apache spark 加载本地文件时spark_会话和sqlContext之间的差异,apache-spark,pyspark,Apache Spark,Pyspark,我尝试使用spark_会话和sqlContext将本地文件作为数据帧加载 df = spark_session.read...load(localpath) 它无法读取本地文件。df是空的。 但是,在从spark_上下文创建sqlcontext之后,它可以加载一个本地文件 sqlContext = SQLContext(spark_context) df = sqlContext.read...load(localpath) 它工作得很好。但我不明白为什么。原因是什么 环境:Windows
df = spark_session.read...load(localpath)
它无法读取本地文件。df是空的。
但是,在从spark_上下文创建sqlcontext之后,它可以加载一个本地文件
sqlContext = SQLContext(spark_context)
df = sqlContext.read...load(localpath)
它工作得很好。但我不明白为什么。原因是什么
环境:Windows10,spark 2.2.1
编辑
我终于解决了这个问题。根本原因是随pip安装的PySpark与本地文件系统中安装的PySpark之间存在版本差异。PySpark无法启动,因为py4j失败。我正在粘贴一个可能有用的示例代码。我们使用它创建Sparksession对象并读取本地文件:
import org.apache.spark.sql.SparkSession
object SetTopBox_KPI1_1 {
def main(args: Array[String]): Unit = {
if(args.length < 2) {
System.err.println("SetTopBox Data Analysis <Input-File> OR <Output-File> is missing")
System.exit(1)
}
val spark = SparkSession.builder().appName("KPI1_1").getOrCreate()
val record = spark.read.textFile(args(0)).rdd
import org.apache.spark.sql.SparkSession
对象设置topbox\u KPI1\u 1{
def main(参数:数组[字符串]):单位={
如果(参数长度<2){
System.err.println(“SetTopBox数据分析或缺失”)
系统出口(1)
}
val spark=SparkSession.builder().appName(“KPI1_1”).getOrCreate()
val记录=spark.read.textFile(args(0)).rdd
总的来说,在Spark 2.2中,使用Spark的首选方法是创建SparkSession对象。几乎相同的问题