कैसे टाइप करें 'टाइपर्रर: एक पूर्णांक आवश्यक है (टाइप बाइट्स)' त्रुटि जब स्पाइस 2.4.4 को स्पार्क करने के बाद pyspark चलाने की कोशिश कर रहा है


16

मैंने OpenJDK 13.0.1 और अजगर 3.8 और स्पार्क 2.4.4 स्थापित किया है। इंस्टॉलेशन का परीक्षण करने के निर्देश स्पार्क इंस्टॉलेशन की जड़ से चलाने के लिए। \ Bin \ pyspark है। मुझे यकीन नहीं है कि अगर मैं स्पार्क इंस्टॉलेशन में एक कदम चूक गया, जैसे कुछ पर्यावरण चर स्थापित करना, लेकिन मुझे कोई विस्तृत निर्देश नहीं मिल सकता है।

मैं अपनी मशीन पर अजगर दुभाषिया चला सकता हूं, इसलिए मुझे विश्वास है कि यह सही ढंग से स्थापित है और "जावा-वर्सन" चलाने से मुझे अपेक्षित प्रतिक्रिया मिलती है, इसलिए मुझे नहीं लगता कि समस्या उन दोनों में से है।

मुझे Cloudpickly.py से त्रुटियों का एक स्टैक ट्रेस मिलता है:

Traceback (most recent call last):
  File "C:\software\spark-2.4.4-bin-hadoop2.7\bin\..\python\pyspark\shell.py", line 31, in <module>
    from pyspark import SparkConf
  File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\__init__.py", line 51, in <module>
    from pyspark.context import SparkContext
  File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\context.py", line 31, in <module>
    from pyspark import accumulators
  File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\accumulators.py", line 97, in <module>
    from pyspark.serializers import read_int, PickleSerializer
  File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\serializers.py", line 71, in <module>
    from pyspark import cloudpickle
  File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\cloudpickle.py", line 145, in <module>
    _cell_set_template_code = _make_cell_set_template_code()
  File "C:\software\spark-2.4.4-bin-hadoop2.7\python\pyspark\cloudpickle.py", line 126, in _make_cell_set_template_code
    return types.CodeType(
TypeError: an integer is required (got type bytes)

जवाबों:


43

यह इसलिए हो रहा है क्योंकि आप अजगर 3.8 का उपयोग कर रहे हैं। Pyspark की नवीनतम पाइप रिलीज (लेखन के समय pyspark 2.4.4) अजगर 3.8 का समर्थन नहीं करता है। अजगर 3.7 के लिए अब डाउनग्रेड करें, और आपको ठीक होना चाहिए।


धन्यवाद, यह बहुत अच्छा है!
क्रिस

यह मेरे लिए काम नहीं किया, नीचे 3.7.6 करने के लिए
user2331566

1
मैं पुष्टि कर सकता हूं कि pyspark 2.4.4 मेरे लिए python3.7.5
mork

पुष्टि कर सकते हैं कि अजगर 3.7.0 के साथ एक ताजा कोंडा वातावरण काम करता है! धन्यवाद।
जे। ऑफेंबर्ग

पुष्टि की है कि 3.7.7 काम किया
kolistivra

1

गंदे वर्कअराउंड के रूप में एक _cell_set_template_codeपायथन 3-केवल कार्यान्वयन के साथ कार्य कर सकता है जिसे फ़ंक्शन के डॉकस्ट्रिंग द्वारा सुझाया गया है _make_cell_set_template_code:

Notes
-----
In Python 3, we could use an easier function:

.. code-block:: python

   def f():
       cell = None

       def _stub(value):
           nonlocal cell
           cell = value

       return _stub

    _cell_set_template_code = f()

यहाँ स्पार्क v2.4.5 के लिए एक पैच है: https://gist.github.com/ei-grad/d311d0f34b60ebef96841a3a39103622

इसे लागू करें:

git apply <(curl https://gist.githubusercontent.com/ei-grad/d311d0f34b60ebef96841a3a39103622/raw)

यह ./bin/pyspark के साथ समस्या को ठीक करता है, लेकिन ./bin/spark-submit बंडल pyspark.zip का उपयोग करता है, जिसकी स्वयं की प्रतिलिपि Cloudpickle.py है। और अगर यह वहां तय किया जाएगा, तो यह अभी भी काम नहीं करेगा, किसी वस्तु को अनप्लिक करने के दौरान एक ही त्रुटि के साथ असफल pyspark/serializers.py

लेकिन ऐसा लगता है कि पायथन 3.8 का समर्थन पहले से ही v3.0.0-प्रीव्यू 2 को उगलने के लिए आया है, इसलिए कोई भी इसे आज़मा सकता है। या, पायथन 3.7 से चिपके रहें, जैसे स्वीकृत उत्तर बताता है।


0

Pyinstaller के नवीनतम संस्करण को स्थापित करने का प्रयास करें जो इस आदेश का उपयोग करके अजगर 3.8 के साथ संगत हो सकता है :

pip install https://github.com/pyinstaller/pyinstaller/archive/develop.tar.gz

संदर्भ :
https://github.com/pyinstaller/pyinstaller/issues/4265


1
मैंने यह किया और pysparkअभी भी वही त्रुटि देता है
javadba

मुझे भी। ऐसा लगता है कि यह एक अलग मुद्दा है, भले ही यह एक ही त्रुटि संदेश हो। ओपी की समस्या होती है pyspark\cloudpickle.py। PyInstaller समस्या में होता है PyInstaller\building\utils.py
स्टीवन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.