У меня проблема с загрузкой данных Cassandra (Scylla) в Apache Spark с хранилищем данных / spark-cassandra-разъем:
scala> val rdd = sc.cassandraTable[(String)](keyspace, table).select("url").limit(10).collect()
java.util.NoSuchElementException: key not found: duration
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:59)
at com.datastax.spark.connector.types.ColumnType$$anonfun$1.applyOrElse(ColumnType.scala:117)
Я пробовал разные версии Spark и spark-cassandra-разъем с Scala и Python но безуспешно. Я думаю, это из-за отсутствия поддержки типов данных продолжительности в наборах данных / spark-cassandra-connector, я проверил ColumnType. scala, они имеют только:
private[connector] val primitiveTypeMap = Map[DataType, ColumnType[_]](
DataType.text() -> TextType,
DataType.ascii() -> AsciiType,
DataType.varchar() -> VarCharType,
DataType.cint() -> IntType,
DataType.bigint() -> BigIntType,
DataType.smallint() -> SmallIntType,
DataType.tinyint() -> TinyIntType,
DataType.cfloat() -> FloatType,
DataType.cdouble() -> DoubleType,
DataType.cboolean() -> BooleanType,
DataType.varint() -> VarIntType,
DataType.decimal() -> DecimalType,
DataType.timestamp() -> TimestampType,
DataType.inet() -> InetType,
DataType.uuid() -> UUIDType,
DataType.timeuuid() -> TimeUUIDType,
DataType.blob() -> BlobType,
DataType.counter() -> CounterType,
DataType.date() -> DateType,
DataType.time() -> TimeType
)
Кто-нибудь знает, как обращаться с типом данных продолжительности Кассандры в это дело?