Leiten Sie columnNames dynamisch an cassandraTable () weiter. Select ()
Ich lese die Abfrage einer Datei zur Laufzeit und führe sie in der SPark + Cassandra-Umgebung aus.
Ich führe aus:sparkContext.cassandraTable.("keyspaceName", "colFamilyName").select("col1", "col2", "col3").where("some condition = true")
Query in FIle:
select col1, col2, col3 from keyspaceName.colFamilyName where somecondition = true
Hier Col1, col2, col3 können je nach der in der Datei analysierten Abfrage variieren.
Frage:
Wie wähle ich columnName aus der Abfrage aus und übergebe sie an select () und runtime.
Ich habe viele Möglichkeiten ausprobiert:
1. dümmste Sache gemacht (die offensichtlich einen Fehler warf) -
var str = "col1,col2,col3"
var selectStmt = str.split("\\,").map { x => "\"" + x.trim() + "\"" }.mkString(",")
var queryRDD = sc.cassandraTable().select(selectStmt)
Alle Ideen sind willkommen.
Side Notes:
1. Ich möchte cassandraCntext nicht verwenden, da es in der nächsten Realase https: //docs.datastax.com/de/datastax_enterprise/4.5/datastax_enterprise/spark/sparkCCcontext.htm)
2. Ich bin auf
- ein. Scala 2.11
- b. spark-cassandra-connector_2.11: 1.6.0-M1
- c. Spark 1.6