예제 #1
0
        /// <summary>
        /// Creates the PythonFunction object on the JVM side wrapping the given command bytes.
        /// </summary>
        /// <param name="jvm">JVM bridge to use</param>
        /// <param name="command">Serialized command bytes</param>
        /// <returns>JvmObjectReference object to the PythonFunction object</returns>
        internal static JvmObjectReference CreatePythonFunction(IJvmBridge jvm, byte[] command)
        {
            var arrayList          = new ArrayList(jvm);
            var broadcastVariables = new ArrayList(jvm);

            broadcastVariables.AddAll(JvmBroadcastRegistry.GetAll());
            JvmBroadcastRegistry.Clear();

            return((JvmObjectReference)jvm.CallStaticJavaMethod(
                       "org.apache.spark.sql.api.dotnet.SQLUtils",
                       "createPythonFunction",
                       command,
                       CreateEnvVarsForPythonFunction(jvm),
                       arrayList, // Python includes
                       SparkEnvironment.ConfigurationService.GetWorkerExePath(),
                       Versions.CurrentVersion,
                       broadcastVariables,
                       null)); // Accumulator
        }
예제 #2
0
        /// <summary>
        /// Creates the PythonFunction object on the JVM side wrapping the given command bytes.
        /// </summary>
        /// <param name="jvm">JVM bridge to use</param>
        /// <param name="command">Serialized command bytes</param>
        /// <returns>JvmObjectReference object to the PythonFunction object</returns>
        internal static JvmObjectReference CreatePythonFunction(IJvmBridge jvm, byte[] command)
        {
            var arrayList          = new ArrayList(jvm);
            var broadcastVariables = new ArrayList(jvm);

            broadcastVariables.AddAll(JvmBroadcastRegistry.GetAll());
            JvmBroadcastRegistry.Clear();

            return((JvmObjectReference)jvm.CallStaticJavaMethod(
                       "org.apache.spark.sql.api.dotnet.SQLUtils",
                       "createPythonFunction",
                       command,
                       CreateEnvVarsForPythonFunction(jvm),
                       arrayList, // Python includes
                       SparkEnvironment.ConfigurationService.GetWorkerExePath(),
                       // Used to check the compatibility of UDFs between the driver and worker.
                       AssemblyInfoProvider.MicrosoftSparkAssemblyInfo().AssemblyVersion,
                       broadcastVariables,
                       null)); // Accumulator
        }
예제 #3
0
 internal void OnSerialized(StreamingContext context)
 {
     JvmBroadcastRegistry.Add(_jvmObject);
 }