apache-spark
पिसपार्क से स्काला जॉब बुला रहा है
खोज…
परिचय
यह दस्तावेज़ आपको दिखाएगा कि स्कैस नौकरियों को एक पीस्पार्क एप्लिकेशन से कैसे कॉल किया जाए।
यह दृष्टिकोण तब उपयोगी हो सकता है जब पायथन एपीआई स्काला एपीआई से कुछ मौजूदा सुविधाओं को याद कर रहा है या यहां तक कि अजगर का उपयोग करके प्रदर्शन के मुद्दों से निपटने के लिए।
कुछ उपयोग के मामलों में, पायथन का उपयोग करना अपरिहार्य है जैसे कि आप 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 नौकरियों में आवश्यकता है