Beispiel #1
0
        public void TestPicklingUdfWrapper3()
        {
            var udfWrapper = new PicklingUdfWrapper <string, string, string, string>(
                (str1, str2, str3) => str1 + str2 + str3);

            ValidatePicklingWrapper(3, udfWrapper);
        }
        public void TestCommandSerDeForSqlPickling()
        {
            var udfWrapper     = new PicklingUdfWrapper <string, string>((str) => $"hello {str}");
            var workerFunction = new PicklingWorkerFunction(udfWrapper.Execute);

            byte[] serializedCommand = Utils.CommandSerDe.Serialize(
                workerFunction.Func,
                Utils.CommandSerDe.SerializedMode.Row,
                Utils.CommandSerDe.SerializedMode.Row);

            using var ms = new MemoryStream(serializedCommand);
            var deserializedWorkerFunction = new PicklingWorkerFunction(
                Utils.CommandSerDe.Deserialize <PicklingWorkerFunction.ExecuteDelegate>(
                    ms,
                    out Utils.CommandSerDe.SerializedMode serializerMode,
                    out Utils.CommandSerDe.SerializedMode deserializerMode,
                    out var runMode));

            Assert.Equal(Utils.CommandSerDe.SerializedMode.Row, serializerMode);
            Assert.Equal(Utils.CommandSerDe.SerializedMode.Row, deserializerMode);
            Assert.Equal("N", runMode);

            object result = deserializedWorkerFunction.Func(0, new[] { "spark" }, new[] { 0 });

            Assert.Equal("hello spark", result);
        }
Beispiel #3
0
        public void TestPicklingUdfWrapper5()
        {
            var udfWrapper = new PicklingUdfWrapper <string, string, string, string, string, string>(
                (str1, str2, str3, str4, str5) => str1 + str2 + str3 + str4 + str5);

            ValidatePicklingWrapper(5, udfWrapper);
        }
Beispiel #4
0
        public void TestPicklingUdfWrapper2()
        {
            var udfWrapper = new PicklingUdfWrapper <string, string, string>(
                (str1, str2) => str1 + str2);

            ValidatePicklingWrapper(2, udfWrapper);
        }
Beispiel #5
0
        public void TestPicklingUdfWrapper1()
        {
            var udfWrapper = new PicklingUdfWrapper <string, string>(
                (str1) => str1);

            ValidatePicklingWrapper(1, udfWrapper);
        }
Beispiel #6
0
        internal static CommandPayload GetDefaultCommandPayload()
        {
            var udfWrapper1 = new PicklingUdfWrapper <string, string>((str) => $"udf1 {str}");
            var udfWrapper2 = new PicklingUdfWrapper <string, string>((str) => $"udf2 {str}");
            var udfWrapper3 = new PicklingUdfWrapper <int, int, int>((arg1, arg2) => arg1 + arg2);

            var command1 = new Command()
            {
                ChainedUdfs = new PicklingWorkerFunction.ExecuteDelegate[]
                {
                    udfWrapper1.Execute,
                    udfWrapper2.Execute
                },
                ArgOffsets       = new[] { 0 },
                SerializerMode   = CommandSerDe.SerializedMode.Row,
                DeserializerMode = CommandSerDe.SerializedMode.Row
            };

            var command2 = new Command()
            {
                ChainedUdfs      = new PicklingWorkerFunction.ExecuteDelegate[] { udfWrapper3.Execute },
                ArgOffsets       = new[] { 1, 2 },
                SerializerMode   = CommandSerDe.SerializedMode.Row,
                DeserializerMode = CommandSerDe.SerializedMode.Row
            };

            return(new CommandPayload()
            {
                EvalType = UdfUtils.PythonEvalType.SQL_BATCHED_UDF,
                Commands = new[] { command1, command2 }
            });
        }
Beispiel #7
0
        public void TestPicklingUdfWrapper8()
        {
            var udfWrapper = new PicklingUdfWrapper <
                string, string, string, string, string, string, string, string, string>(
                (str1, str2, str3, str4, str5, str6, str7, str8)
                => str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8);

            ValidatePicklingWrapper(8, udfWrapper);
        }
Beispiel #8
0
        public void TestPicklingUdfWrapper10()
        {
            var udfWrapper = new PicklingUdfWrapper <
                string, string, string, string, string, string, string, string, string, string, string>(
                (str1, str2, str3, str4, str5, str6, str7, str8, str9, str10)
                => str1 + str2 + str3 + str4 + str5 + str6 + str7 + str8 + str9 + str10);

            ValidatePicklingWrapper(10, udfWrapper);
        }
Beispiel #9
0
        public void TestPicklingUdfWrapper0()
        {
            var udfWrapper = new PicklingUdfWrapper <int>(() => 10);

            Assert.Equal(10, udfWrapper.Execute(0, null, null));
        }