के रूप में मैं कम से कम 50 प्रतिनिधि
है आप struct.struct.field साथ एक json संरचना संदर्भित कर रहे हैं जब और वहाँ की तरह एक नाम स्थान मौजूद है मैं टिप्पणी नहीं कर सकता:
ns2: struct.struct.field बैकटिक्स (`) काम नहीं करता है।
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: यू " 'sn2:AnyAddRq.AnyInfo.noInfo.someRef.myInfo.someData.Name
'
समाधान नहीं कर पाता मैं SN2 निकालें: खेतों, क्वेरी को निष्पादित करता
मैं भी एक उद्धरण के साथ की कोशिश की है (। '), बैकस्लेश (\) और दोहरे उद्धरण चिह्नों ("")
एक ही तरीका है यह काम करता है अगर मैं SN2 पर एक और अस्थायी तालिका रजिस्टर यदि: strucutre, मैं सक्षम पहुँच क्षेत्रों के भीतर तो
०१२३५१६४१०६ की तरह कर रहा हूँ
anotherDF = jsonDF.select("sn2:AnyAddRq.AnyInfo.noInfo.someRef.myInfo.someData")
anotherDF.registerTempTable("anotherDF")
sqlc.select("select Name from anotherDF").show()
कोशिश उन्हें एकल उद्धरण के साथ भागने sqlContext.sql ("का चयन करें 'कॉलम -1' myDF से") – Identity1
ऐसा इसलिए है क्योंकि यह एक स्ट्रिंग नहीं एक स्तंभ नाम के रूप में 'कॉलम -1' व्यवहार करेगा काम नहीं करता। – sfactor
एसक्यूएल-99 मानक निर्दिष्ट करता है कि डबल कोट (") का उपयोग पहचानकर्ताओं को सीमित करने के लिए किया जाता है। उन्हें दोहरे उद्धरणों के साथ आज़माएं, शायद बाहरी लोगों को सिंगल कोट्स में रखें – Identity1