Zeppelin:将 pyspark.rdd.RDD 转换为数据帧(pyspark 数据帧)
Zeppelin : Convert a pyspark.rdd.RDD to dataframe (pyspark dataframe)
我正在尝试将 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 提交中 但是 在 Zeppelin 中没有。
我想知道为什么。
我有一些日志错误,但超过 1000 行。如果你需要,我可以给你这些日志。
如果有人有想法..
谢谢
我找到了解决方案:在 Spark Interpreter 的配置中(在 Zeppelin 中),您需要更改 zeppelin.spark.useHiveContext 行中的 false 。
尽管如此,我还是不明白为什么问题会出现在 toDF 方法所在的那一行...
我正在尝试将 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 提交中 但是 在 Zeppelin 中没有。
我想知道为什么。
我有一些日志错误,但超过 1000 行。如果你需要,我可以给你这些日志。
如果有人有想法.. 谢谢
我找到了解决方案:在 Spark Interpreter 的配置中(在 Zeppelin 中),您需要更改 zeppelin.spark.useHiveContext 行中的 false 。 尽管如此,我还是不明白为什么问题会出现在 toDF 方法所在的那一行...