我正在尝试将 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 行。如果您需要,我可以给您这些日志。
如果有人有想法.. 谢谢
最佳答案
我找到了解决方案:在 Spark Interpreter(在 Zeppelin 中)的配置中,您需要将 zeppelin.spark.useHiveContext 行更改为 false。 尽管如此,我还是不明白为什么问题会出现在 toDF 方法所在的那一行......
关于python - Zeppelin : Convert a pyspark. rdd.RDD 到数据帧(pyspark 数据帧),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43543391/