【问题标题】:How to save org.apache.spark.mllib.linalg.Vector in dataframe to cassandra如何将数据框中的 org.apache.spark.mllib.linalg.Vector 保存到 cassandra
【发布时间】:2016-12-15 16:53:27
【问题描述】:

我需要在其中一列中保存包含 org.apache.spark.mllib.linalg.Vector 的数据框。从数据框在 cassandra 中创建表时,它会抛出错误。

java.lang.Exception: Cassandra Writer Failed. java.lang.IllegalArgumentException: Unsupported type: org.apache.spark.mllib.linalg.VectorUDT@f71b0bce
        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:206)

【问题讨论】:

    标签: apache-spark cassandra apache-spark-sql spark-dataframe spark-cassandra-connector


    【解决方案1】:

    如果要保存此类型的二进制值,只需将其转换为 Byte 数组,然后将其保存到 blob 列。

    如果要将其保存为一组值,则需要进行适当的转换为 Scala 集合。

    【讨论】:

      猜你喜欢
      • 2015-08-28
      • 2016-05-01
      • 2019-08-30
      • 2020-06-15
      • 2016-05-27
      • 2018-05-26
      • 2013-09-01
      • 2016-09-10
      • 1970-01-01
      相关资源
      最近更新 更多