[英]Error: bulkCopyToSqlDB is not a member of org.apache.spark.sql.DataFrameWriter
[英]Error: value cassandraFormat is not a member of org.apache.spark.sql.DataFrameWriter
檢查github上的repo我在這里看到了cassandraFormat
。 我的import語句沒有拋出異常:
import org.apache.spark.sql.cassandra._
df.write
.cassandraFormat("keyspace", "table")
.save()
<console>:34: error: value cassandraFormat is not a member of org.apache.spark.sql.DataFrameWriter[org.apache.spark.sql.Row]
cassandraFormat
在df.write
下不可用,但它位於spark.read
下。
我正在使用Spark 2.1.1。 我的spark-shell被調用:
spark-shell --master spark://10.0.0.115:7077 --packages com.databricks:spark-csv_2.11:1.5.0,datastax:spark-cassandra-connector:1.6.6-s_2.11
編輯:
我確實意識到cassandraFormat
基本上是.format().options()
的別名。 但是返回了一個不同的錯誤:
df.write
.format("org.apache.spark.sql.cassandra")
.options(Map("table" -> "standard_feed", "keyspace" -> "testing"))
.save()
java.lang.AbstractMethodError: org.apache.spark.sql.cassandra.DefaultSource.createRelation
(Lorg/apache/spark/sql/SQLContext;Lorg/apache/spark/sql/SaveMode;Lscala/collection/
immutable/Map;Lorg/apache/spark/sql/Dataset;)Lorg/apache/spark/sql/sources/
BaseRelation;
at org.apache.spark.sql.execution.datasources.DataSource.write(DataSource.scala:518)
at org.apache.spark.sql.DataFrameWriter.save(DataFrameWriter.scala:215)
我對cassandraFormat
不太確定,但是將數據幀保存到cassandra表可以通過以下方式最簡單地完成:
df.write
.format("org.apache.spark.sql.cassandra")
.options(Map("table" -> "table_name", "keyspace" -> "keyspace_name"))
.save()
關於您收到的錯誤消息:
我認為您收到的錯誤消息是由於版本不匹配。 您使用spark 2.1.1和cassandra-connector版本1.6.6。 對於spark 2.1.x,您需要使用cassandra-connector的2.0版本,請參閱此處的表格以獲取版本兼容性的完整列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.