का उपयोग कर सीएसवी में निर्यात डेटा मुझे ज़ेप्पेलिन में अपने% sql दुभाषिया से सीएसवी प्रारूप में डेटा निर्यात करने की आवश्यकता है। ऐसा मैं किस प्रकार करूं? मुझे एक बटन जोड़ने की आवश्यकता है और उस पर क्लिक करने पर उसे सीएसवी में डेटा निर्यात करना चाहिए जैसा क्लाइंट साइड पर एसक्यूएल दुभाषिया में ज़ेपेल्लिन में ग्राफ द्वारा दिखाया गया है।zeppelin
Q
zeppelin
5
A
उत्तर
3
फिलहाल, यह समर्थित नहीं है (ज़ेपेल्लिन 0.5.6)। फिर भी, ऐसा लगता है कि यह अगले संस्करण (0.6.0) में जोड़ा जाएगा। आप Zeppelin git page से यह क्लोन कर सकते हैं, या आप अगले काम के आसपास है कि मैं उपयोग कर रहा हूँ का उपयोग कर सकते हैं:
- आप नोटबुक और पैरा जो आप निर्यात करने की कोशिश की आईडी की आवश्यकता होगी। आप पैराग्राफ के विकल्प मेनू में "इस पैराग्राफ को लिंक करें" पर क्लिक करके उन्हें प्राप्त कर सकते हैं, जिन्हें आप निर्यात करना चाहते हैं। जब आप ऐसा करते हैं, तो आपको एक नई विंडो मिल जाएगी। आईडी नई विंडो के यूआरएल में हैं:
http://localhost:8080/#/notebook/{Notebook-ID}/paragraph/{Paragraph-ID}?asIframe
- Zeppelin Notebook API का उपयोग करें।
http://localhost:8080/api/notebook/{Notebook-ID}/paragraph/{Paragraph-ID}
- पर एक HTTP-GET अनुरोध भेजें प्रतिक्रिया एक जेसन है। क्षेत्र
body.result.msg
एक स्ट्रिंग है जो परिणाम को टीएसवी (टैब सेपरेटेड वैल्यूज) के रूप में धारण करता है। यह बहुत अधिक है जो आपको चाहिए (आप इसे पार्स कर सकते हैं और CSV फ़ाइल प्राप्त करने के लिए,
के साथ स्ट्रिंग में सभी\t
को प्रतिस्थापित कर सकते हैं)।
एक साधारण कोड आपको इस समय काम नहीं कर सकता है।
संपादित करें:
यहाँ एक अजगर स्क्रिप्ट जो वास्तव में इस करता है। getTSV
कॉल करें और इसे "लिंक इस पैरा" क्लिक करने से पैरा का यूआरएल आपको मिल भेजें:
import requests
import json
def parseURL(paragraphUrl):
url = paragraphUrl.split(":8080")
address = url[0]
vals = url[1].split("/")
notebook = vals[3]
paragraph = vals[5].split("?")[0]
return [address, notebook, paragraph]
def getData(address, notebook, paragraph):
response = requests.get(address + ":8080/api/notebook/" + notebook + "/paragraph/" + paragraph)
return response.text
def getTSV(paragraphUrl):
# This function gets the same url that you get from clicking on "Link this paragraph"
[address, notebook, paragraph] = parseURL(paragraphUrl)
response = getData(address,notebook,paragraph)
return json.loads(response)["body"]["result"]["msg"]
1
यहाँ
shakedzy के कोड रूबी के लिए भेजा, किसी को भी है कि (मेरे जैसे) अजगर के साथ यह पसंद कर सकते हैं के लिए है:
require 'net/http'
require 'json'
def get_zeppelin_data(paragraph_url)
rx = %r{http://([\w\d]+):([\d]+)/?#/notebook/([\w\d]+)/paragraph/([\d\-_]+)}
address, port, notebook_id, paragraph_id = paragraph_url.match(rx).captures
api_url = "http://#{address}:#{port}/api/notebook/#{notebook_id}/paragraph/#{paragraph_id}"
result = Net::HTTP.get(URI(api_url))
data = JSON.parse(result)
data["body"]["result"]["msg"]
end
संबंधित मुद्दे
- 1. zeppelin
- 2. <code>Zeppelin</code> नीचे का उपयोग कर अपाचे एसक्यूएल स्पार्क
- 3. कोई $ ZEPPELIN_HOME/scripts/डोकर/चिंगारी क्लस्टर प्रबंधकों/spark_standalone फ़ाइल
- 4. 'SPARK_HOME` को सेट करने के लिए क्या करें?
- 5. नहीं दुभाषिए टसेपेल्लिन
- 6. अपाचे ज़ेपेल्लिन में 100 से अधिक एसक्यूएल परिणाम कैसे प्राप्त कर सकते हैं?
- 7. हाइव देखने के लिए मैं स्वतंत्र सेवा ज़ेपेल्लिन कैसे प्राप्त करूं?
- 8. aws स्पार्क-ec2 क्लस्टर और एस 3 बाल्टी तक पहुंचने के लिए ज़ेपेल्लिन का उपयोग कैसे करें
- 9. अनुमति अस्वीकृत: उपयोगकर्ता = टसेपेल्लिन एडब्ल्यूएस ईएमआर क्लस्टर
ध्यान दें ज़ेपेल्लिन केवल पहली 1000 पंक्तियों को प्रदर्शित करता है। –
केवल एसक्यूएल यूआई में। यह स्क्रिप्ट सभी डेटा – shakedzy
अजीब देता है, स्रोत में मैं ऐसी सीमा पढ़ सकता हूं (https://github.com/apache/zeppelin/blob/master/jdbc/src/main/java/org/apache/zeppelin/jdbc देखें /JDBCInterpreter.java#L540), isnit? –