簡體   English   中英

錯誤:值cassandraFormat不是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]

cassandraFormatdf.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM