如何解决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”
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。