Zeppelin:将pyspark.rdd.RDD转换为dataframe(pyspark dataframe)

3

我正在尝试将pyspark.rdd.RDD转换为数据框。我已经在Spark中完成了这个操作,但是在Zeppelin中似乎不能以同样的方式工作。

我过去通常使用以下方法将pyspark.rdd.RDD转换:

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
import pandas as pd


#comment if a SparkContext has already been created   
sc = SparkContext()

conf = {"es.resource" : "index/type", "es.nodes" : "ES_Serveur", "es.port" : "9200", "es.query" : "?q=*"}
rdd = sc.newAPIHadoopRDD("org.elasticsearch.hadoop.mr.EsInputFormat","org.apache.hadoop.io.NullWritable", "org.elasticsearch.hadoop.mr.LinkedMapWritable", conf=conf)

#to allow the toDF methode
spark = SparkSession(sc)

df = rdd.toDF().toPandas()

在spark submit中可以正常工作,但在Zeppelin中不行。 我想知道为什么。 我有一些错误日志,但超过1000行。如果你需要,我可以提供这些日志。 如果有人有想法... 谢谢
1个回答

0
我已经找到了解决方案:在Spark解释器的配置中(在Zeppelin中),您需要将zeppelin.spark.useHiveContext行更改为false。尽管如此,我不明白为什么问题会出现在toDF方法所在的行...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接