如何从spark向cassandra写入文件

ws51t4hk  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(363)

我对spark和cassandra还不熟悉。我用这个代码,但它给我错误。

val dfprev = df.select(col = "se","hu")
val a = dfprev.select("se")
val b = dfprev.select("hu")
val collection = sc.parallelize(Seq(a,b))
collection.saveToCassandra("keyspace", "table", SomeColumns("se","hu"))

当我在上输入此代码时 savetocassandra ,它给了我一个错误,错误是:
java.lang.illegalargumentexception:不允许具有相同数量参数的多个构造函数。在com.datastax.spark.connector.util.reflect$.methodsymbol(reflect。scala:16)在com.datastax.spark.connector.util.reflectionutil$.constructorparams(reflectionutil。scala:63)在com.datastax.spark.connector.mapper.defaultcolumnmapper.(defaultcolumnmapper。scala:45)在com.datastax.spark.connector.mapper.lowprioritycolumnmapper$class.defaultcolumnmapper(columnmapper。scala:51)在om.datastax.spark.connector.mapper.columnmapper$.defaultcolumnmapper(columnmapper。scala:55)

3phpmpom

3phpmpom1#

val dfprev = df.select("se","hu")
dfprev.write.format("org.apache.spark.sql.cassandra")
.options(Map("keyspace"->"YOUR_KEYSPACE_NAME","table"->"YOUR_TABLE_NAME"))
.mode(SaveMode.Append)
.save()

变量 a 以及 b 属于Dataframe类型。 sc.parallelize 从元素集合创建rdd,它不接受Dataframe作为输入。
注:设置 spark.cassandra.connection.host 以及 spark.cassandra.auth.username & spark.cassandra.auth.password (如果已启用身份验证)在 sparkconf

相关问题