Wie kann ich lange, mehrzeilige Hive-Abfragen in Spark SQL ausführen? Wie Abfrage unter:Wie führe ich multiline sql in spark sql aus?
val sqlContext = new HiveContext (sc)
val result = sqlContext.sql ("
select ...
from ...
");
Wie kann ich lange, mehrzeilige Hive-Abfragen in Spark SQL ausführen? Wie Abfrage unter:Wie führe ich multiline sql in spark sql aus?
val sqlContext = new HiveContext (sc)
val result = sqlContext.sql ("
select ...
from ...
");
Use ""“statt, so zum Beispiel
val results = sqlContext.sql ("""
select ....
from ....
""");
oder, wenn Sie Code formatieren möchten, verwenden Sie:
val results = sqlContext.sql ("""
|select ....
|from ....
""".stripMargin);
Es ist erwähnenswert, dass die Länge ist nicht das Problem, nur das Schreiben, dazu kann man "" wie von Gaweda vorgeschlagen verwenden oder einfach eine String-Variable verwenden, z indem Sie es mit einem String Builder erstellen. Zum Beispiel:
val selectElements = Seq("a","b","c")
val builder = StringBuilder.newBuilder
builder.append("select ")
builder.append(selectElements.mkString(","))
builder.append(" where d<10")
val results = sqlContext.sql(builder.toString())
Ohne val in Linien mit append :) –
sorry, zu viel cut & paste ... :). Die Antwort wurde aktualisiert ... –
Sie können am Ende jeder Zeile Triple-Anführungszeichen am Anfang/Ende des SQL-Code oder einen umgekehrten Schrägstrichs verwenden.
val results = sqlContext.sql ("""
create table enta.scd_fullfilled_entitlement as
select *
from my_table
""");
results = sqlContext.sql (" \
create table enta.scd_fullfilled_entitlement as \
select * \
from my_table \
")
Triple-Anführungszeichen (sowohl Double als auch Single) können auch in Python verwendet werden. Auch Backslashes sind veraltet. –
Danke, bearbeitet. Obsolet? Nicht genau, laut dem Stypen Guide https://www.python.org/dev/peps/pep-0008/ – Ricardo
bitte verbessern Sie Ihre Post, niemand will Screenshots von Code sehen – mtoto