Wenn ich Datenframes auf Spark-Shell (Version 1.6) abfragen, sind die Spaltennamen Groß-und Kleinschreibung. Auf Funken ShellSpark DataFrame
val a = sqlContext.read.parquet("<my-location>")
a.filter($"name" <=> "andrew").count()
a.filter($"NamE" <=> "andrew").count()
Sowohl die obigen Ergebnisse gibt mir das Recht, zu zählen. Aber wenn ich dies in einem Glas bauen und laufen über „funken einreichen“, unter Code nicht sagen Name nicht existiert, da zugrunde liegenden Parkett Daten mit Spalte als „name“
gespeichert wurdeschlägt fehl:
a.filter($"NamE" <=> "andrew").count()
Pass:
a.filter($"name" <=> "andrew").count()
Bin ich hier etwas fehlt, ist es eine Möglichkeit, ich es Groß- und Kleinschreibung machen. Ich weiß, ich kann eine Auswahl vor dem Filtern verwenden und alle Spalten als Kleinbuchstaben Alias machen, aber wollte wissen, warum es anders verhält.
Verwenden von HiveContext anstelle von SQLContext aufgelöst this.Auch wenn Sie SQLContext verwenden möchten, können wir sqlContext.setConf ("spark.sql.caseSensitive", "false") verwenden, so dass es Groß-und Kleinschreibung wird – ftw
Wusste nicht für die '' 'sqlContext.setConf (" spark.sql.caseSensitive "," false ")' '', nett. –