首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将pyspark连接到ignite

将pyspark连接到ignite
EN

Stack Overflow用户
提问于 2019-07-09 05:42:47
回答 1查看 410关注 0票数 0

全,

在过去的两个星期里,我一直在与PySpark和Ignite itegration作斗争,我已经束手无策了。

我一直在尝试上传一个在pyspark中创建的表来点燃。

我已经启动了这个脚本,如下所示

spark-submit --master spark://my_host:my_port --jars $IGNITE_HOME/libs/*jar, $IGNITE_HOME/libs/optional/ignite-spark/jar, $IGNITE_HOME/libs/ignite-spring/*jar $IGNITE_HOME/libs/ignite-indexking/*jar my_python_script.py

my_python_script.py是这样的:

代码语言:javascript
复制
import pyspark
spark = pyspark.sql.SparkSession\
    .builder\
    .appName("Ignite")\
    .getOrCreate()

# create the data frame
columns = ["COL1", "COL2", "ID"]
vals = [("a", "b", 0), ("c", "d", 1)]
df = spark.createDataFrame(vals, columns)

df.write\
  .format("jdbc")\
  .option("driver", "org.apache.ignite.IgniteJdbcThinDriver")\
  .option("url", "jdbs:ignite:thin://my_url:my_port")\
  .option("user", "my_user")\
  .option("password", "my_password")\
  .option("dbtable", "my_table")\
  .option("mode", "overwrite")\
  .save()

我一直收到错误...对于上述情况,错误为py4j.protocol.Py4JavaError: An error occurred while calling o48.save. :java.sql.SQLException: no PRIMARY KEY defined for CREATE TABLE at org.apache.ignite.internal.jdbc.thin.JdbcThinConnection.sendRequest(JdbcThinConnection.java:750

有人能帮帮忙吗?

我的spark版本是2.4.0,python 2.7,ignite 2.7

EN

回答 1

Stack Overflow用户

发布于 2019-07-09 17:05:16

你不使用Spark-Ignite集成有什么原因吗?JDBC应该可以工作,但还有一种更好的方法,特别是因为您已经包含了所有正确的JAR。

代码语言:javascript
复制
df.write.format("ignite")
        .option("table","my_table")
        .option("primaryKeyFields","COL1")
        .option("config",configFile)
        .option("mode","overwrite")
        .save()

还要注意其中包含的"primaryKeyFields“选项。正如您的错误消息所指出的,使用JDBC的版本会失败,因为您没有定义主键。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56942900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档