खोज…


परिचय

यह दस्तावेज़ आपको दिखाएगा कि स्कैस नौकरियों को एक पीस्पार्क एप्लिकेशन से कैसे कॉल किया जाए।

यह दृष्टिकोण तब उपयोगी हो सकता है जब पायथन एपीआई स्काला एपीआई से कुछ मौजूदा सुविधाओं को याद कर रहा है या यहां तक कि अजगर का उपयोग करके प्रदर्शन के मुद्दों से निपटने के लिए।

कुछ उपयोग के मामलों में, पायथन का उपयोग करना अपरिहार्य है जैसे कि आप scikit-learn साथ मॉडल बना रहे scikit-learn

एक स्केल फ़ंक्शन बनाना जो एक अजगर आरडीडी प्राप्त करता है

एक अजगर समारोह है कि एक अजगर RDD प्राप्त करता है बनाना आसान है। आपको जो बनाने की जरूरत है वह एक फ़ंक्शन है जिसे JavaRDD [कोई भी] मिलता है

import org.apache.spark.api.java.JavaRDD

def doSomethingByPythonRDD(rdd :JavaRDD[Any]) = {
    //do something
    rdd.map { x => ??? }
}

सीरियल कोड के लिए अजगर आरडीडी को सीरियल करें और भेजें

विकास के इस भाग को आपको अजगर RDD को JVM में क्रमबद्ध करना चाहिए। यह प्रक्रिया जार फ़ंक्शन को कॉल करने के लिए स्पार्क के मुख्य विकास का उपयोग करती है।

from pyspark.serializers import PickleSerializer, AutoBatchedSerializer


rdd = sc.parallelize(range(10000))
reserialized_rdd = rdd._reserialize(AutoBatchedSerializer(PickleSerializer()))
rdd_java = rdd.ctx._jvm.SerDe.pythonToJava(rdd._jrdd, True)

_jvm = sc._jvm #This will call the py4j gateway to the JVM.
_jvm.myclass.apps.etc.doSomethingByPythonRDD(rdd_java)

स्पार्क-सबमिट कैसे करें

इस कोड को कॉल करने के लिए आपको अपने स्कैला कोड का जार बनाना चाहिए। इस तरह आपको अपनी स्पार्क सबमिट कॉल करनी होगी:

spark-submit --master yarn-client --jars ./my-scala-code.jar --driver-class-path ./my-scala-code.jar main.py

यह आपको किसी भी तरह के स्कैला कोड को कॉल करने की अनुमति देगा जिसकी आपको अपने pySpark नौकरियों में आवश्यकता है



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow