我想读取来自cassandra keyspace和column_family的数据框。运行sparkR时,我正在调用相应的spark-cassandra-connector软件包,并将conf设置为我的本地spark cassandra主机。运行下面的代码时不会出现任何错误。sparkR与Cassandra
$ ./bin/sparkR --packages com.datastax.spark:spark-cassandra-connector_2.10:1.5.0-M2 --conf spark.cassandra.connection.host=127.0.0.1
sc <- sparkR.init(master="local")
sqlContext <- sparkRSQL.init(sc)
people <-read.df(sqlContext,
source = "org.apache.spark.sql.cassandra",
keyspace = "keyspace_name", table = "table_name")
我碰到下面的错误,
Error in writeJobj(con, object) : invalid jobj 1
我必须的conf传递到sparkContext
分配(SC),并在sparkR怎么样?
下面是我的火花和卡桑德拉版本,
星火:1.5.1 卡桑德拉:2.1.6 卡桑德拉连接器更新为使用1.5.0-M2每zero323建议
这里是一个要点,以我的堆栈跟踪。
https://gist.github.com/bhajer3/419561edcb0dc5db2f71
编辑:
我可以创建表格不包括任何卡桑德拉收集的数据类型的数据帧, 如地图,集和列表。但是,我需要数据的许多模式都包含这些集合数据类型。
因此,当读取来自Cassandra密钥空间和column_family的数据帧时,sparkR不支持cassandra集合数据类型。看到我的详细报告/测试程序。
https://gist.github.com/bhajer3/c3effa92de8e3cfc4fee
几个注意事项:1)请不要发布更新或其他问题作为答案。2)如果您解决了问题并遇到另一个问题,请不要编辑问题以更改范围,而是解决现有问题并请求新问题。否则,您将使现有答案无效并减少其他用户问题的价值。 3)如果你有一个可以用来重现问题的代码,请把它作为问题本身的一部分。只有当它是一个活生生的例子时,外部源才有意义(sqlfiddle,jsbin) – zero323
对于@ zero323将会这样做,感谢您的帮助。 –
当然,我已经提供了一个解释,为什么收集复杂类型不适用于1.5。它根本不被支持。 – zero323