2015-11-25 12 views
5

This page मुझे प्रेरणादायक था Pyspark में csv फ़ाइल को पढ़ने के लिए चिंगारी से सीएसवी आज़माने के लिए मैं spark-csvकैसे IPython नोटबुक में जार dependenices लोड करने के लिए

का उपयोग कैसे करें लेकिन मैं कर रहा हूँ का वर्णन इस तरह के this के रूप में पदों की एक जोड़ी मिल गया iparkthon इंस्टेंस को प्रारंभ करने में सक्षम नहीं है, या तो स्पार्क-शैल के माध्यम से स्टार्ट-अप में .jar फ़ाइल या पैकेज एक्सटेंशन सहित।

यह है कि ipython notebook --profile=pyspark के बजाय, मैंने ipython notebook --profile=pyspark --packages com.databricks:spark-csv_2.10:1.0.3 को आजमाया लेकिन यह समर्थित नहीं है।

कृपया सलाह दें।

उत्तर

10

आप इसे PYSPARK_SUBMIT_ARGS चर में आसानी से पास कर सकते हैं। उदाहरण के लिए:

export PACKAGES="com.databricks:spark-csv_2.11:1.3.0" 
export PYSPARK_SUBMIT_ARGS="--packages ${PACKAGES} pyspark-shell" 

ये संपत्ति भी पहले SparkContext/SparkSession अपने कोड में गतिशील रूप से सेट किया जा सकता है और इसी JVM शुरू कर दिया गया है:

packages = "com.databricks:spark-csv_2.11:1.3.0" 

os.environ["PYSPARK_SUBMIT_ARGS"] = (
    "--packages {0} pyspark-shell".format(packages) 
) 
+0

क्या यह पहले से ही 'os.environ ["PYSPARK_SUBMIT_ARGS"] 'में मौजूद सभी चीज़ों को ओवरराइड नहीं करेगा? मुझे लगता है कि इसका उल्लेख किया जाना चाहिए क्योंकि मैंने –

7

मेरा मानना ​​है कि आप भी करने के लिए एक चर के रूप में इस जोड़ सकते हैं अपने स्पार्क-defaults.conf फ़ाइल। तो कुछ ऐसा:

spark.jars.packages com.databricks:spark-csv_2.10:1.3.0 

यह हर बार जब आप ड्राइवर लॉन्च करते हैं तो स्पार्क-सीएसवी लाइब्रेरी को पायस्पार्क में लोड कर देगा।

जाहिर शून्य का जवाब क्योंकि आप इससे पहले कि आप PySpark पैकेज आयात अपने PySpark अनुप्रयोग के लिए इन पंक्तियों में जोड़ सकते हैं और अधिक लचीला है:

import os 
os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages com.databricks:spark-csv_2.10:1.3.0 pyspark-shell' 

from pyspark import SparkContext, SparkConf 

इस तरह आप केवल संकुल आप वास्तव में अपने स्क्रिप्ट के लिए की जरूरत आयात कर रहे हैं।

+0

क्या हुआ यह पता लगाने में काफी समय बिताया है कि यदि आप नोटबुक चला रहे हैं, तो यह अब तक का सबसे पोर्टेबल विकल्प है: मैं ऑल-स्पार्क-नोटबुक संस्करण चला रहा हूं, और यह एक ही समय में सभी तीन भाषाओं के लिए सीएसवी पार्सिंग को अनलॉक करता है। – mrArias

संबंधित मुद्दे