apache-spark - Spark 从 Cassandra 错误 org.apache.spark.unsafe.types.UTF8String 读取数据不是字符串模式的有效外部类型
问题描述
我有一个创建如下的 Cassandra 表(在 cqlsh 中)
CREATE TABLE blog.session( id int PRIMARY KEY, visited text);
我将数据写入 Cassandra,它看起来像这样
id | visited
1 | Url1-Url2-Url3
然后我尝试使用 spark Cassandra 连接器(2.5.1)阅读它。
val sparkSession = SparkSession.builder()
.master("local")
.appName("ReadFromCass")
.config("spark.cassandra.connection.host", "localhost")
.config("spark.cassandra.connection.port", "9042")
.getOrCreate()
import sparkSession.implicits._
val readSessions = sparkSession.sqlContext
.read
.cassandraFormat("table1", "keyspace1").load().show()
但是,它似乎无法读取已访问的内容,因为它是一个文本对象,单词之间有破折号。错误发生为
org.apache.spark.unsafe.types.UTF8String is not a valid external type for schema of string
关于为什么 spark 无法阅读此内容以及如何解决此问题的任何想法?
解决方案
错误似乎是 spark-cassandra-connector 的版本。而不是使用“2.5.1”使用“3.0.0-beta”
推荐阅读
- python - 如何安装旧的 PyQT 版本(版本 4)
- python - 如何在django rest框架的ListCreateApiView中使用create函数而不是perform_create
- jenkins - 在 Jenkins Pipeline 的 HTML 正文中使用环境变量
- arrays - 如何在C中初始化数组?
- matrix - 将每一列除以最大值/最后一个值
- eclipse - Apache Tomcat 9.0.40 服务器在 eclipse 上运行时抛出 404 错误。否则它工作正常
- google-cloud-platform - BigQuery 摘要
- wordpress - 如何更改 wordpress 网站上的默认单词?
- java - 分数计算
- rust - 无法将 Struct 属性设置为 Enum Rust