Ich möchte einen Spark SQL DataFrame aus den Ergebnissen einer Abfrage über CSV-Daten (auf HDFS) mit Apache Drill erstellen. I erfolgreich konfiguriert Spark-SQL, um es über JDBC zu machen eine Verbindung zu bohren:Integration von Spark SQL und Apache Drill über JDBC
Map<String, String> connectionOptions = new HashMap<String, String>();
connectionOptions.put("url", args[0]);
connectionOptions.put("dbtable", args[1]);
connectionOptions.put("driver", "org.apache.drill.jdbc.Driver");
DataFrame logs = sqlc.read().format("jdbc").options(connectionOptions).load();
Spark-SQL führt zwei Abfragen: das erste, das Schema zu erhalten, und die zweite die aktuelle Daten abzurufen:
SELECT * FROM (SELECT * FROM dfs.output.`my_view`) WHERE 1=0
SELECT "field1","field2","field3" FROM (SELECT * FROM dfs.output.`my_view`)
Die erste ist erfolgreich, aber in der zweiten schließt Spark Felder in doppelten Anführungszeichen ein, was Drill nicht unterstützt, daher schlägt die Abfrage fehl.
Hat jemand diese Integration funktioniert?
Vielen Dank!
mit Das sieht aus wie Scala, aber Frage des OP in Java war. – paisanco
Stimmt, ich akzeptiere dennoch die Antwort, da sie mich auf JdbcDialect verweist. Vielen Dank! –