Если вы хотите сделать это с помощью Scala и Databricks, вы можете просто использовать indexOf
, например
val namesStr = "banana,apple,apricot"
// To array
val a = namesStr.split(",")
a.indexOf("apple")
Мои результаты:
Мои результаты
Если вам действительно нужно сделать это в U- SQL, тогда есть функция IndexOf
, которую вы можете использовать в файле кода программной части, например, что-то вроде этого:
using Microsoft.Analytics.Interfaces;
using Microsoft.Analytics.Types.Sql;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace USQLworking2
{
public class myFunctions
{
public static int someFunction(SqlArray<string> someString, string searchString)
{
//!!TODO add error / exception handling
String[] stringArray = someString.ToArray();
return Array.IndexOf(stringArray, searchString);
}
}
}
И U- SQL:
DECLARE @outputFile string = @"\output\output.csv";
DECLARE CONST @namesStr = "banana,apple,apricot";
DECLARE CONST @names = new SqlArray<string>( @namesStr.Split(',') );
@output =
SELECT
USQLworking2.myFunctions.someFunction ( @names, "apricot" ) AS shouldBe1
FROM ( VALUES ( 0 ) ) AS x(y);
OUTPUT @output
TO @outputFile
USING Outputters.Csv();