berechnen Sie die string-Länge in Spark SQL-DSL
Edit: das ist eine alte Frage zur Spark 1.2
Ich habe versucht zu berechnen on-the-fly die Länge einer string-Spalte in einer SchemaRDD für die orderBy-Zwecke. Ich Lerne Spark SQL so meine Frage ist, streng über die Verwendung des DSL-oder die SQL-Schnittstelle Spark SQL macht, oder zu wissen, Ihre Grenzen.
Mein Erster Versuch war die Nutzung der integrierten relationalen Abfragen, zum Beispiel
notes.select('note).orderBy(length('note))
nicht mit Glück an der Zusammenstellung:
error: not found: value length
(Was mich Wundern lässt, wo zu finden, was "Ausdruck" diese DSL kann eigentlich beheben. Zum Beispiel, es löst das "+" für Spalte Ergänzungen.)
Dann habe ich versucht
sql("SELECT note, length(note) as len FROM notes")
Dieser schlägt mit
java.util.NoSuchElementException: key not found: length
(Dann ich Las das (ich bin mit 1.2.0)
http://spark.apache.org/docs/1.2.0/sql-programming-guide.html#supported-hive-features
und sich Fragen, in welchem Sinn Spark SQL unterstützt die aufgeführten hive-Funktionen.)
Fragen: ist die Länge Betreiber wirklich in Ausdrücken unterstützt und/oder in SQL-Anweisungen? Wenn ja, was ist die syntax? (bonus: gibt es eine spezifische Dokumentation über das, was aufgelöst wird, Spark SQL-Ausdrücke, und was wäre die syntax im Allgemeinen?)
Dank!
hive-site.xml
in den classpath? In der Regel ist es in $SPARK_HOME/conf
. Diese Datei enthält Hive classpath-Konfiguration.NÖ, ich finde nicht alle hive-site.xml überall in der Funke zu Hause
Tun Sie implizieren, dass die hive-Funktionen sind nur verfügbar, wenn die Zusammenarbeit mit Hive-Tabellen? Also Spark SQL nicht unterstützt diese Funktionen auf RDD, hat man zum speichern von Tabellen in Hive ersten?
Ich habe gerade getestet:
hive-site.xml
ist nützlich, um zu konfigurieren, Hive, aber nicht notwendig. Die SQL-Abfrage funktioniert out-of-the-box-Spark-1.2.1 in local - Modus. Wenn Sie Ihre Abfrage in einem cluster (welche Art?) hat es Hive aktiviert?hmmm... ich bin im lokalen Modus, aber 1.2.0. Ich kann versuchen 1.2.1
InformationsquelleAutor Wilmerton | 2015-02-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese in Spark-Shell:
Funktioniert es auf, indem Sie setup (out of the box spark 1.2.1 mit hadoop 2.4):
...und für die Aufnahme, jemand zeigte mir, was ich wollte, zu Operatoren innerhalb eines Ausdrucks hier (Aggregate) und hier (arithmetische). Keine Länge operation für strings...
oder Sie können sich registrieren, Ihre eigenen string-Länge die Funktion als
Antwort ist super. Es gibt keine Länge-operator-Spalte im SQL Kontext.
InformationsquelleAutor G Quintana
Es heute existiert!
Ihre
spark.sql("SELECT note, LENGTH(note) as len FROM notes")
funktionieren sollte.Bin ich mit Spark 2.2.0, nur Tat es und es funktionierte.
InformationsquelleAutor cardamom