পাইথন শেলটিতে পাইপার্ক আমদানি করা হচ্ছে


111

এটি অন্য ফোরামে অন্য কারও প্রশ্নের একটি অনুলিপি যা কখনও উত্তর দেওয়া হয়নি, তাই আমি ভেবেছিলাম যে আমার একই সমস্যা আছে বলে আমি এখানে এটি আবার জিজ্ঞাসা করব। (দেখুন http://geekple.com/blogs/feeds/Xgzu7/posts/351703064084736 )

আমি আমার মেশিনে স্পার্কটি সঠিকভাবে ইনস্টল করেছি এবং আমার পাইথন ইন্টারপ্রেটার হিসাবে ./bin/pyspark ব্যবহার করার সময় ত্রুটি ছাড়াই পাইপارک মডিউলগুলি দিয়ে পাইথন প্রোগ্রাম চালাতে সক্ষম হয়েছি।

যাইহোক, আমি যখন নিয়মিত পাইথন শেলটি চালানোর চেষ্টা করি, যখন আমি পাইপার্ক মডিউলগুলি আমদানি করার চেষ্টা করি তখন আমি এই ত্রুটিটি পাই:

from pyspark import SparkContext

এবং এটা বলে

"No module named pyspark".

আমি এটা কিভাবে ঠিক করবো? পাইথার্কটি পাইপार्ক হেডার / লাইব্রেরি / ইত্যাদির দিকে নির্দেশ করতে আমার কি পরিবেশের পরিবর্তনশীল দরকার? যদি আমার স্পার্ক ইনস্টলেশনটি / স্পার্ক / হয়, তবে আমার কোন পাইপ্পার্ক পাথগুলি অন্তর্ভুক্ত করতে হবে? বা পাইপর্ক প্রোগ্রামগুলি কেবল পাইপार्ক ইন্টারপ্রেটার থেকে চালানো যেতে পারে?


তারা বলে যে পরিবেশের ভেরিয়েবলগুলি পরিবর্তন করা "অতি কার্যকর নয়, কারণ এটি খুব দ্রুত বিন / স্পার্ক-জমা দিয়ে ওভাররাইড করা হয়।" হতে পারে আপনি এই এক্সচেঞ্জ থেকে কিছু শিখতে পারেন
এমমাগ্রাস

উত্তর:


97

এখানে একটি সহজ পদ্ধতি (আপনি কীভাবে এটি কাজ করে তা নিয়ে মাথা ঘামান না হলে !!!)

Findspark ব্যবহার করুন

  1. আপনার অজগর শেলের কাছে যান

    pip install findspark
    
    import findspark
    findspark.init()
  2. প্রয়োজনীয় মডিউলগুলি আমদানি করুন

    from pyspark import SparkContext
    from pyspark import SparkConf
  3. সম্পন্ন!!!


অন্যান্য সমাধানগুলি আমার পক্ষে কার্যকর হয়নি। আমি আমার প্রোগ্রামে সন্ধানের জন্য এখন ব্যবহার করছি। সমস্যাটির কাছে শালীন কাজ মনে হয়।
বিশ্লেষণী সন্ন্যাসী

আমি বরং এটি করার প্রয়োজন হবে না .. তবে আরে .. অন্য কিছু দেয় না .. আমি এটি গ্রহণ করব।
জাভাদবা

51

যদি এটি এ জাতীয় ত্রুটিটি প্রিন্ট করে:

ImportError: py4j.java_gateway নামে কোনও মডিউল নেই

দয়া করে পাইথনপথে $ স্পার্কহোম / পাইথন / বিল্ড যুক্ত করুন:

export SPARK_HOME=/Users/pzhang/apps/spark-1.1.0-bin-hadoop2.4
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH

9
অন্য প্রতিক্রিয়া বর্ণনা অনুযায়ী stackoverflow.com/questions/26533169/... আমি নিম্নলিখিত রপ্তানি কোনো PYTHONPATH = $ SPARK_HOME যোগ করার জন্য ছিল / পাইথন / lib / অনুপস্থিত py4j-0.8.2.1-src.zip: $ কোনো PYTHONPATH
মেয়ের্সন

46

দেখা যাচ্ছে যে পাইপার্ক বিনটি অজগরটি লোডিং করছে এবং স্বয়ংক্রিয়ভাবে সঠিক লাইব্রেরির পাথ লোড করছে। $ স্পার্কহোম / বিন / পিসপার্ক দেখুন:

# Add the PySpark classes to the Python path:
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH

আমি এই লাইনটি আমার .bashrc ফাইলটিতে যুক্ত করেছি এবং মডিউলগুলি এখন সঠিকভাবে পাওয়া গেছে!


1
এই পদক্ষেপটি ছাড়াও, আমাকে যুক্ত করতে হবে export SPARK_HOME=~/dev/spark-1.1.0:, ফিগার যান। আপনার ফোল্ডারনেমগুলি পৃথক হতে পারে।
Emmagras

21

আপনার পাই ফাইলটি চালাবেন না: python filename.py পরিবর্তে ব্যবহার করুন:spark-submit filename.py


কেউ কেন এটি না করে প্রসারিত করতে পারে? আমি এই প্রশ্নটি সন্ধান করেছি তবে এখনও পর্যন্ত এমন কোনও কারণ খুঁজে পাইনি যে এটি কেন explain
পুদিনা

@ মিন্ট অন্যান্য উত্তরগুলি কেন দেখায়; পাইস্পার্ক প্যাকেজটি ডিফল্টরূপে Y পাইথনপথে অন্তর্ভুক্ত থাকে না, সুতরাং এটি import pysparkকমান্ড লাইনে বা সম্পাদিত স্ক্রিপ্টে ব্যর্থ হবে। আপনার হয় হয় একটি। উদ্দেশ্যপ্রণালী হিসাবে স্পার্ক-জমা দিয়ে pyspark চালান বা খ। $ স্পার্কহোম / পাইথনকে Y পাইথনপথে যোগ করুন।
কিংডলিয়ন

আর একটি বিষয় হল স্পার্ক-সাবমিট হ'ল একটি শেল স্ক্রিপ্ট, যা স্পার্ক ব্যবহারের আগে আপনাকে সিস্টেমের পরিবেশটি সঠিকভাবে কনফিগার করতে সহায়তা করে, যদি আপনি কেবল পাইথন মেইন.পি করেন তবে আপনাকে সিস্টেমের পরিবেশটি সঠিকভাবে কনফিগার করতে হবে যেমন পাইথনপথ, স্পার্কহোম
জেডওয়াই।

21

স্পার্ক পথ এবং পাই 4 জে পথ রফতানি করে এটি কাজ শুরু করে:

export SPARK_HOME=/usr/local/Cellar/apache-spark/1.5.1
export PYTHONPATH=$SPARK_HOME/libexec/python:$SPARK_HOME/libexec/python/build:$PYTHONPATH
PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH 
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH

সুতরাং, আপনি যদি পাইথন শেলটি চালানোর জন্য প্রতিবার এগুলি টাইপ করতে না চান, আপনি এটি আপনার .bashrcফাইলে যুক্ত করতে চাইতে পারেন


1
আমি আমার ইনস্টলেশনটিতে লিবেক্সেক ডিরেক্টরিটি খুঁজে পাচ্ছি না Apache Spark, কোনও ধারণা?
আলবার্তো বনসন্তো

@ অ্যালবার্তো বনসন্তো দুঃখিত আমি এই সমস্যার মুখোমুখি হই নি। সুতরাং, কোনও ধারণা নেই :(
দাওয়ানি 33

1
হ্যাঁ তারা স্পার্ক 1.5.2
bluerubez

1
@ ব্লুউরউব মনে হয় যে সেখানে স্পার্ক ১. in.২ রয়েছে ... এছাড়াও, libexec/python/buildডিরেক্টরিটি কী তা নিশ্চিত তা নিশ্চিত নন তবে স্পার্কের
১..2.২ তে

17

ম্যাকে আমি স্পার্ক ইনস্টল করতে হোমব্রিউ ব্যবহার করি (সূত্র "অ্যাপাচি-স্পার্ক")। তারপরে, আমি পাইথনপথটি এইভাবে সেট করেছি যাতে পাইথন আমদানি কাজ করে:

export SPARK_HOME=/usr/local/Cellar/apache-spark/1.2.0
export PYTHONPATH=$SPARK_HOME/libexec/python:$SPARK_HOME/libexec/python/build:$PYTHONPATH

আপনার ম্যাকের প্রকৃত অ্যাপাচি-স্পার্ক সংস্করণটি "1.2.0" প্রতিস্থাপন করুন।


14

পাইস্পার্কে স্পার্ক কার্যকর করার জন্য দুটি উপাদান একসাথে কাজ করা প্রয়োজন:

  • pyspark পাইথন প্যাকেজ
  • একটি জেভিএম-তে স্পার্ক উদাহরণ

স্পার্ক-সাবমিট বা পাইসপার্কের সাহায্যে জিনিসগুলি চালু করার সময়, এই স্ক্রিপ্টগুলি উভয়েরই যত্ন নেবে, অর্থাত্ তারা আপনার পাইথনপথ, পাঠ ইত্যাদি স্থাপন করবে যাতে আপনার স্ক্রিপ্টটি পাইপার্ক খুঁজে পেতে পারে এবং আপনার স্পষ্ট উদাহরণটি শুরু করে আপনার প্যারাম অনুসারে কনফিগার করে যেমন, - মাস্টার এক্স

বিকল্পভাবে, এই স্ক্রিপ্টগুলি বাইপাস করা এবং আপনার স্পার্ক অ্যাপ্লিকেশনটি সরাসরি পাইথন ইন্টারপ্রেটারের মতো চালানো সম্ভব python myscript.py। এটি বিশেষত আকর্ষণীয় যখন স্পার্ক স্ক্রিপ্টগুলি আরও জটিল হতে শুরু করে এবং শেষ পর্যন্ত তাদের নিজস্ব আরগগুলি গ্রহণ করে।

  1. পাইপার্ক প্যাকেজটি পাইথন ইন্টারপ্রেটারের দ্বারা পাওয়া যাবে তা নিশ্চিত করুন। ইতিমধ্যে আলোচিত হিসাবে হয় হয় পাইথনপথে স্পার্ক / পাইথন দির যুক্ত করুন বা পিপ ইনস্টল ব্যবহার করে সরাসরি পাইপার্ক ইনস্টল করুন।
  2. আপনার স্ক্রিপ্ট থেকে স্পার্ক উদাহরণের পরামিতিগুলি সেট করুন (যেগুলি পিএসপার্কে প্রেরণ করা হত)।
    • স্পার্ক কনফিগারেশনের জন্য আপনি সাধারণত --conf দিয়ে সেট করতে চান সেগুলি স্পার্কসেশন.বিল্ডার.কমফিগের একটি কনফিগার অবজেক্ট (বা স্ট্রিং কনফিগারেশন) দিয়ে সংজ্ঞায়িত করা হয়েছে
    • প্রধান বিকল্পগুলির জন্য (যেমন - মাস্টার, বা - ড্রাইভার - মেম) আপনি যে মুহুর্তে সেগুলি সেট করতে পারবেন সেই মুহুর্তের জন্য আপনি পিওয়াইএসপিআরএসএসএসবিএমএসআইবিএমআইআরআইজি এনভায়রনমেন্ট ভেরিয়েবলের কাছে লিখে set জিনিসগুলিকে আরও পরিষ্কার এবং নিরাপদ করার জন্য আপনি এটিকে পাইথনের মধ্যে থেকেই সেট করতে পারেন এবং শুরু করার সাথে সাথে স্পার্কটি এটি পড়বে।
  3. উদাহরণটি শুরু করুন, যার জন্য আপনাকে কেবল getOrCreate()বিল্ডার অবজেক্ট থেকে কল করতে হবে ।

আপনার স্ক্রিপ্টে এর মতো কিছু থাকতে পারে:

from pyspark.sql import SparkSession

if __name__ == "__main__":
    if spark_main_opts:
        # Set main options, e.g. "--master local[4]"
        os.environ['PYSPARK_SUBMIT_ARGS'] = spark_main_opts + " pyspark-shell"

    # Set spark config
    spark = (SparkSession.builder
             .config("spark.checkpoint.compress", True)
             .config("spark.jars.packages", "graphframes:graphframes:0.5.0-spark2.1-s_2.11")
             .getOrCreate())

9

পরিত্রাণ পেতে ImportError: No module named py4j.java_gateway, আপনাকে নিম্নলিখিত লাইনগুলি যুক্ত করতে হবে:

import os
import sys


os.environ['SPARK_HOME'] = "D:\python\spark-1.4.1-bin-hadoop2.4"


sys.path.append("D:\python\spark-1.4.1-bin-hadoop2.4\python")
sys.path.append("D:\python\spark-1.4.1-bin-hadoop2.4\python\lib\py4j-0.8.2.1-src.zip")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf

    print ("success")

except ImportError as e:
    print ("error importing spark modules", e)
    sys.exit(1)

7

উইন্ডোজ 10 এ নিম্নলিখিতটি আমার জন্য কাজ করেছিল। আমি আপনার অ্যাকাউন্টের জন্য সেটিংস > পরিবেশ পরিবর্তনগুলি সম্পাদনা করে নিম্নলিখিত পরিবেশের ভেরিয়েবলগুলি যুক্ত করেছি :

SPARK_HOME=C:\Programming\spark-2.0.1-bin-hadoop2.7
PYTHONPATH=%SPARK_HOME%\python;%PYTHONPATH%

(যে ফোল্ডারে আপনি স্পার্ক ইনস্টল করেছেন সেটিতে "সি: \ প্রোগ্রামিং \ ..." পরিবর্তন করুন)


5

লিনাক্স ব্যবহারকারীদের জন্য, পাইথনপ্যাথে পাইপর্ক লিবারায় অন্তর্ভুক্ত করার সঠিক (এবং হার্ড-কোডেড নয়) উপায়। উভয় PATH অংশ প্রয়োজনীয়:

  1. পাইপর্ক পাইথন মডিউল নিজেই পাথ এবং
  2. জিপড লাইব্রেরির পাথ যে পাইপর্ক মডিউলটি আমদানির সময় নির্ভর করে

নীচে লক্ষ্য করুন যে জিপ করা লাইব্রেরি সংস্করণটি গতিশীলভাবে নির্ধারিত হয়েছে, তাই আমরা এটি হার্ড-কোড করি না।

export PYTHONPATH=${SPARK_HOME}/python/:$(echo ${SPARK_HOME}/python/lib/py4j-*-src.zip):${PYTHONPATH}

4

আমি সেন্টোস ভিএম-তে একটি স্পার্ক ক্লাস্টার চালাচ্ছি, যা ক্লৌডের ইয়াম প্যাকেজ থেকে ইনস্টল করা আছে।

পাইস্পার্ক চালানোর জন্য নিম্নলিখিত ভেরিয়েবলগুলি সেট করতে হয়েছিল।

export SPARK_HOME=/usr/lib/spark;
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH

4
export PYSPARK_PYTHON=/home/user/anaconda3/bin/python
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

স্পার্কের সাথে আমার অ্যানাকোন্ডা বিতরণটি ব্যবহার করার জন্য এটি আমি করেছি। এটি স্পার্ক সংস্করণ স্বাধীন। আপনি আপনার ব্যবহারকারীদের অজগর বিনটিতে প্রথম লাইনটি পরিবর্তন করতে পারেন। এছাড়াও, স্পার্ক ২.২.০-এর হিসাবে পাইপপার্ক পিপিআই-তে স্ট্যান্ড-একা প্যাকেজ হিসাবে উপলব্ধ তবে আমি এখনও এটি পরীক্ষা করতে পারিনি।


4

আপনি নীচের pyspark pathমতো পাইথন ব্যবহার করে pip(যদি আপনি পিআইপি ব্যবহার করে পাইপর্ক ইনস্টল করে থাকেন) পেতে পারেন

pip show pyspark

3

আমারও একই সমস্যা ছিল।

এছাড়াও নিশ্চিত করুন যে আপনি ডান পাইথন সংস্করণ ব্যবহার করছেন এবং আপনি এটি ডান পাইপ সংস্করণ দিয়ে ইনস্টল করছেন। আমার ক্ষেত্রে: আমার অজগর ২.7 এবং ৩.x ছিল। আমি পাইপার্কটি ইনস্টল করেছি

pip2.7 ইনস্টল pyspark

এবং এটা কাজ করে.


2

আমি এই ত্রুটিটি পেয়েছি কারণ আমি যে পাইথন স্ক্রিপ্টটি জমা দেওয়ার চেষ্টা করছিলাম তার নাম পাইসপার্ক.পি ( ফেসপাম )। ঠিকঠাকটি ছিল উপরে প্রস্তাবিত হিসাবে আমার পাইথনপথ সেট করা, তারপরে স্ক্রিপ্টটির নাম পরিবর্তন করে pyspark_test.py এবং pyspark.pyc পরিষ্কার করুন যা আমার স্ক্রিপ্টগুলির মূল নামের উপর ভিত্তি করে তৈরি হয়েছিল এবং এই ত্রুটিটি সাফ করেছে।


2

ডিএসইর ক্ষেত্রে (ডাটাস্ট্যাক্স ক্যাসান্দ্রা এবং স্পার্ক) নিম্নলিখিত স্থানটি পাইথনপথে যুক্ত করা দরকার

export PYTHONPATH=/usr/share/dse/resources/spark/python:$PYTHONPATH

তারপরে মডিউলগুলি পথে পেতে dse pyspark ব্যবহার করুন।

dse pyspark

2

আমার একই সমস্যা ছিল এবং উপরে প্রস্তাবিত সমাধানগুলিতে একটি জিনিস যুক্ত করব। স্পার্ক ইনস্টল করতে ম্যাক ওএস এক্স-এ হোমব্রিউ ব্যবহার করার সময় আপনাকে পায়ে লিবাক্সেক অন্তর্ভুক্ত করার জন্য পাইপজ জেথ ঠিকানাটি সংশোধন করতে হবে (আপনার যেটির সাথে পাইর জেজে সংস্করণ পরিবর্তন করতে হবে);

PYTHONPATH=$SPARK_HOME/libexec/python/lib/py4j-0.9-src.zip:$PYTHONPATH

দ্রষ্টব্য - আমি এটি আনজিপ করার চেষ্টা করেছি এবং py4jকেবল ফোল্ডারটি ব্যবহার করেছি , কাজ হয়নি। জিপ ফাইলটি ব্যবহার করুন ...
এল ডুড

2

আমার ক্ষেত্রে এটি পৃথক পাইথন ডিস্টপ্যাকেজ (পাইথন ৩.৫) এ ইনস্টল হচ্ছে যখন আমি পাইথন ৩.6 ব্যবহার করছিলাম, সুতরাং নীচে সহায়তা করেছে:

python -m pip install pyspark

1

আপনি ওএস হিসাবে আলপাইন এবং একটি পাইথন এবং পাইপর্ককে প্যাকেজ হিসাবে ইনস্টল করে একটি ডকার ধারক তৈরি করতে পারেন। এটি সব ধারক করা হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.