我在运行时读取文件的查询并在 SPark+Cassandra 环境中执行它。
我正在执行:
sparkContext.cassandraTable.("keyspaceName", "colFamilyName").select("col1", "col2", "col3").where("some condition = true")
在文件中查询:
选择列1、列2、列3
来自 keyspaceName.colFamilyName
其中某些条件 = true
这里 Col1、col2、col3 可以根据从文件中解析的查询而变化。
问题 :
如何从查询中选择 columnName 并将它们传递给 select() 和运行时。
我尝试了很多方法来做到这一点:
1.做了最愚蠢的事情(这显然引发了错误)-
var str = "col1,col2,col3"
var selectStmt = str.split("\\,").map { x => "\"" + x.trim() + "\"" }.mkString(",")
var queryRDD = sc.cassandraTable().select(selectStmt)
欢迎任何想法。
附注:
1.我不想使用 cassandra Context,因为它将在下一个版本中被弃用/删除(https://docs.datastax.com/en/datastax_enterprise/4.5/datastax_enterprise/spark/sparkCCcontext.html https://docs.datastax.com/en/datastax_enterprise/4.5/datastax_enterprise/spark/sparkCCcontext.html)
2.我在
- A。斯卡拉2.11
- b. Spark-cassandra-connector_2.11:1.6.0-M1
- C。火花1.6