Ich kann nicht sagen, da ich weniger als 50 Wiederholungen
Wenn Sie eine json Struktur mit struct.struct.field Referenzierung und es gibt einen Namensraum vorhanden wie:
ns2: struct.struct.field Die Backticks (`) funktionieren nicht.
jsonDF = sqlc.read.load('jsonMsgs', format="json")
jsonDF.registerTempTable("masterTable")
sqlc.select("select `sn2:AnyAddRq.AnyInfo.noInfo.someRef.myInfo.someData.Name` AS sn2_AnyAddRq_AnyInfo_noInfo_someRef_myInfo_someData_Name from masterTable").show()
pyspark.sql.utils.AnalysisException: u "nicht lösen 'sn2:AnyAddRq.AnyInfo.noInfo.someRef.myInfo.someData.Name
'
Wenn ich die sn2- entfernen: Felder, führt die Abfrage
ich auch mit Apostroph versucht haben (. ‚), Backslash (\) und doppelte Anführungszeichen (‚‘)
der einzige Weg, es funktioniert, wenn wenn ich eine andere temporäre Tabelle auf dem sn2- registrieren: strucutre, ich in ihr die Felder der Lage, den Zugriff bin wie so
anotherDF = jsonDF.select("sn2:AnyAddRq.AnyInfo.noInfo.someRef.myInfo.someData")
anotherDF.registerTempTable("anotherDF")
sqlc.select("select Name from anotherDF").show()
versuchen, sie mit einfachen Anführungszeichen sqlContext.sql („wählen sie‚Spalte-1‘von myDF“) – Identity1
das wird behandeln funktioniert nicht, weil es zu entkommen ‚Spalte-1‘ als String kein Spaltenname. – sfactor
Der SQL-99-Standard legt fest, dass doppelte Anführungszeichen („) verwendet werden, Kennungen zu begrenzen. Probieren Sie sich mit doppelten Anführungszeichen vielleicht die äußeren in einfachen Anführungszeichen – Identity1