我正在与Cassandra连接spark并且我在Cassandra中存储csv文件,当我输入此命令时出错。
dfprev.write.format("org.apache.spark.sql.cassandra") .options(Map("keyspace"->"sensorkeyspace","table"->"sensortable")).save()
然后我收到了这个错误。
java.io.IOException:无法在{127.0.0.1}打开与Cassandra的本机连接:9042 at com.datastax.spark.connector.cql.CassandraConnector $ .com $ datastax $ spark $ connector $ cql $ CassandraConnector $$ createSession(CassandraConnector.scala:168) 在com.datastax.spark.connector.cql.CassandraConnector $$ anonfun $ 8.apply(CassandraConnector.scala:154) 在com.datastax.spark.connector.cql.CassandraConnector $$ anonfun $ 8.apply(CassandraConnector.scala:154) at com.datastax.spark.connector.cql.RefCountedCache.createNewValueAndKeys(RefCountedCache.scala:32) 在com.datastax.spark.connector.cql.RefCountedCache.syncAcquire(RefCountedCache.scala:69)
答案 0 :(得分:0)
你是Cassandra在localhost
听吗?您可能需要通过在Spark配置中指定spark.cassandra.connection.host
设置来配置Cassandra集群的IP地址列表。有关详细信息,请参阅documentation。
答案 1 :(得分:0)
可能存在以下任何一种
Cassandra服务器可能无法在127.0.0.1:9042
运行请使用 netstat -an 命令检查cassandra是否在端口9042上收听。
fat jar时可能存在依赖性问题。
请确保您已在库依赖项中添加了正确版本的cassandra连接器,例如
“com.datastax.spark”%%“spark-cassandra-connector”%“2.0.0-M3”
我正在运行此命令./spark-shell --packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3 --conf spark.cassandra.connection.host = 127.0.0。
要指定的包,
spark-shell --packages“com.datastax.spark”:“spark-cassandra-connector_2.11”:“2.0.0-M3”
答案 2 :(得分:0)
检查这些内容,可能会解决您的问题, 1.在shell中输入以下命令,在系统中找到cqlsh.py文件
whereis cqlsh
编辑cqlsh.py并将DEFAULT PORT更改为您的IP
使用以下SparkConfig()启动Spark上下文
val conf = new SparkConf().set("spark.cassandra.connection.host", "<YOUR IP>")
val sc = new SparkContext(conf)