Apache spark 使用PySpark在Elasticsearch中保存数据
我有一个程序,需要一个数据帧,并应将其保存到Elasticsearch。以下是我保存数据帧时的外观:Apache spark 使用PySpark在Elasticsearch中保存数据,apache-spark,elasticsearch,pyspark,Apache Spark,elasticsearch,Pyspark,我有一个程序,需要一个数据帧,并应将其保存到Elasticsearch。以下是我保存数据帧时的外观: model_df.write.format( "org.elasticsearch.spark.sql" ).option( "pushdown", True ).option( "es.nodes", "example.server:9200" ).option("es.index.auto.create", Tr
model_df.write.format(
"org.elasticsearch.spark.sql"
).option(
"pushdown", True
).option(
"es.nodes", "example.server:9200"
).option("es.index.auto.create", True
).mode('append').save("EPTestIndex/")
当我运行程序时,出现以下错误:
py4j.protocol.Py4JJavaError:调用o96.save时出错。
:java.lang.ClassNotFoundException:未能找到数据源:
org.elasticsearch.spark.sql。请在以下网址查找包裹:
我做了一些研究,认为我需要一个jar,所以我将这些配置添加到我的SparkSession
:
spark = SparkSession.builder.config("jars", "/Users/public/ProjectDirectory/lib/elasticsearch-spark-20_2.11-6.0.1.jar")\
.getOrCreate()
sqlContext = SQLContext(spark)
我在main中初始化SparkSession
,并在另一个包中写入ES
。包获取数据帧并运行上面的write命令。然而,即使这样,我仍然得到了相同的classnotfoundexception
可能是什么问题
我正在PyCharm中运行此程序,如何使其能够运行?Elasticsearch公开JSON API,而pandas数据帧不是JSON支持的类型 如果必须插入它,可以使用
dataframe.to_json()