首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spark-cassandra-connector -从Dataframe创建表格- StructType?

spark-cassandra-connector -从Dataframe创建表格- StructType?
EN

Stack Overflow用户
提问于 2016-06-27 22:27:32
回答 1查看 1.1K关注 0票数 1

我正试着从Spark数据帧中写给Cassandra。当我有一个简单的数据帧模式时,如示例中所示,它可以工作:

代码语言:javascript
复制
root
 |-- id: string (nullable = true)
 |-- url: string (nullable = true)

但是,当我尝试编写包含StructTypes的数据帧时,其模式如下:

代码语言:javascript
复制
root
 |-- crawl: struct (nullable = true)
 |    |-- id: string (nullable = true)

然后我得到以下异常:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalArgumentException: Unsupported type: StructType(StructField(id,StringType,true))
    at com.datastax.spark.connector.types.ColumnType$.unsupportedType$1(ColumnType.scala:132)
    at com.datastax.spark.connector.types.ColumnType$.fromSparkSqlType(ColumnType.scala:155)
    at com.datastax.spark.connector.mapper.DataFrameColumnMapper$$anonfun$1.apply(DataFrameColumnMapper.scala:18)
    at com.datastax.spark.connector.mapper.DataFrameColumnMapper$$anonfun$1.apply(DataFrameColumnMapper.scala:16)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.List.foreach(List.scala:318)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at com.datastax.spark.connector.mapper.DataFrameColumnMapper.newTable(DataFrameColumnMapper.scala:16)
    at com.datastax.spark.connector.cql.TableDef$.fromDataFrame(Schema.scala:215)
    at com.datastax.spark.connector.DataFrameFunctions.createCassandraTable(DataFrameFunctions.scala:26)

我的代码如下所示:

代码语言:javascript
复制
val df = sqlContext.read.parquet(input)
df.createCassandraTable(keyspace, table)

df.write
  .format("org.apache.spark.sql.cassandra")
  .options(Map("table" -> table, "keyspace" -> keyspace))
  .save()

帮助?

EN

回答 1

Stack Overflow用户

发布于 2016-07-07 06:09:03

看起来连接器目前还不支持从DataFrame结构中动态创建UDT类型。您应该向Spark Cassandra Connector Jira添加一个工单,并将其作为功能请求。在此之前,您始终可以手动创建一个新类型来匹配您的结构类型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38056562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档