नीचे दिए गए कोड चाहिए:
- तारों की अनुक्रम पर पुनरावृत्त करें < Li> प्रत्येक एक को जेसन के रूप में पार्स करें
- उन फ़ील्ड को फ़िल्टर करें जिनके नामों को सबसे अधिक भाषाओं में एक पहचानकर्ता के रूप में इस्तेमाल नहीं किया जा सकता
- नामों को लोअरकेस करें
- एक स्ट्रिंग के रूप में परिणाम
यह छोटे परीक्षणों पर अपेक्षित रूप से व्यवहार करता है, लेकिन 8.6 एम के लाइव अनुक्रम पर लाइव डेटा के आउटपुट अनुक्रम इनपुट अनुक्रम से काफी लंबा है:
आयात करें org.json4s._ आयात org.json4s.jackson.JsonMethods._ आयात org.apache.spark._ val txt = sc.textFile ("s3n: // ...") val patt = "" "[[ए-जीए-जेड] \ w * $" "। R.findFirstIn _ val json = ({line & lt; - txt जॉबैक्स (बच्चों) के लिए & lt; - parse (line) children2 = ({JField के लिए नाम, मूल्य) & lt; - बच्चे // अमान्य नामों के साथ फ़िल्टर फ़ील्ड / / patt (name) रिटर्न विकल्प [स्ट्रिंग] _ & lt; - patt (name)} उपज जेफिल्ड (name.toL)
मैंने यह जाँच कर लिया है कि यह वास्तव में अनन्य वस्तुओं की संख्या को बढ़ाता है, इसलिए यह केवल वस्तुओं का अनुकरण नहीं कर रहा है। स्कला की समझ और मेरी समझ को देखते हुए; Json4s, मुझे नहीं लगता कि यह कैसे संभव है। बड़े रहते डेटा संग्रह एक स्पार्क आरडीडी है, जबकि मेरे परीक्षण एक साधारण स्काला सेक के साथ थे, लेकिन इससे कोई फर्क नहीं पड़ेगा।
कैसे json
अधिक है txt
से ऊपर वाले कोड में तत्व
शायद < कोड> पार्स (लाइन) एक ही पंक्ति के लिए एकाधिक जेएसएएन ऑब्जेक्ट्स वापस कर रहा है?
Comments
Post a Comment