public void TestCommandSerDeForSqlArrow()
        {
            var udfWrapper = new ArrowUdfWrapper <StringArray, StringArray>(
                (strings) => (StringArray)ToArrowArray(
                    Enumerable.Range(0, strings.Length)
                    .Select(i => $"hello {strings.GetString(i)}")
                    .ToArray()));

            var workerFunction = new ArrowWorkerFunction(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 ArrowWorkerFunction(
                Utils.CommandSerDe.Deserialize <ArrowWorkerFunction.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);

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

            AssertEquals("hello spark", result);
        }
Beispiel #2
0
        public void TestArrowUdfWrapper3()
        {
            var udfWrapper = new ArrowUdfWrapper <string, string, string, string>(
                (str1, str2, str3) => str1 + str2 + str3);

            ValidateArrowWrapper(3, udfWrapper);
        }
Beispiel #3
0
        public void TestArrowUdfWrapper5()
        {
            var udfWrapper = new ArrowUdfWrapper <string, string, string, string, string, string>(
                (str1, str2, str3, str4, str5) => str1 + str2 + str3 + str4 + str5);

            ValidateArrowWrapper(5, udfWrapper);
        }
Beispiel #4
0
        public void TestArrowUdfWrapper1()
        {
            var udfWrapper = new ArrowUdfWrapper <string, string>(
                (str1) => str1);

            ValidateArrowWrapper(1, udfWrapper);
        }
Beispiel #5
0
        public void TestArrowUdfWrapper2()
        {
            var udfWrapper = new ArrowUdfWrapper <string, string, string>(
                (str1, str2) => str1 + str2);

            ValidateArrowWrapper(2, udfWrapper);
        }
Beispiel #6
0
        public void TestCommandSerDeForSqlArrow()
        {
            var udfWrapper     = new ArrowUdfWrapper <string, string>((str) => $"hello {str}");
            var workerFunction = new ArrowWorkerFunction(udfWrapper.Execute);

            var serializedCommand = Utils.CommandSerDe.Serialize(
                workerFunction.Func,
                Utils.CommandSerDe.SerializedMode.Row,
                Utils.CommandSerDe.SerializedMode.Row);

            using (var ms = new MemoryStream(serializedCommand))
            {
                var deserializedWorkerFunction = new ArrowWorkerFunction(
                    Utils.CommandSerDe.Deserialize <ArrowWorkerFunction.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);

                Apache.Arrow.IArrowArray input  = ArrowArrayHelpers.ToArrowArray(new[] { "spark" });
                Apache.Arrow.IArrowArray result =
                    deserializedWorkerFunction.Func(0, new[] { input }, new[] { 0 });
                ArrowTestUtils.AssertEquals("hello spark", result);
            }
        }
        public void TestArrowUdfWrapper5()
        {
            var udfWrapper = new ArrowUdfWrapper <StringArray, StringArray, StringArray, StringArray, StringArray, StringArray>(
                (str1, str2, str3, str4, str5) => Concat(str1, str2, str3, str4, str5));

            ValidateArrowWrapper(5, udfWrapper);
        }
        public void TestArrowUdfWrapper3()
        {
            var udfWrapper = new ArrowUdfWrapper <StringArray, StringArray, StringArray, StringArray>(
                (str1, str2, str3) => Concat(str1, str2, str3));

            ValidateArrowWrapper(3, udfWrapper);
        }
Beispiel #9
0
        public void TestArrowUdfWrapper10()
        {
            var udfWrapper = new ArrowUdfWrapper <
                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);

            ValidateArrowWrapper(10, udfWrapper);
        }
Beispiel #10
0
        public void TestArrowUdfWrapper8()
        {
            var udfWrapper = new ArrowUdfWrapper <
                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);

            ValidateArrowWrapper(8, udfWrapper);
        }
        public void TestArrowUdfWrapper10()
        {
            var udfWrapper = new ArrowUdfWrapper <
                StringArray, StringArray, StringArray, StringArray, StringArray, StringArray, StringArray, StringArray, StringArray, StringArray, StringArray>(
                (str1, str2, str3, str4, str5, str6, str7, str8, str9, str10)
                => Concat(str1, str2, str3, str4, str5, str6, str7, str8, str9, str10));

            ValidateArrowWrapper(10, udfWrapper);
        }
Beispiel #12
0
        public void TestArrowUdfWrapper0()
        {
            var         udfWrapper = new ArrowUdfWrapper <int>(() => 10);
            IArrowArray result     = udfWrapper.Execute(0, null, null);

            Assert.IsType <Int32Array>(result);
            var intArray = (Int32Array)result;

            Assert.Equal(1, intArray.Length);
            Assert.Equal(10, intArray.Values[0]);
        }