我正在使用SQL Server机器学习。我正在尝试从脚本中获取输出。
DECLARE @answers NVARCHAR(MAX)
EXEC sp_execute_external_script @language=N'Python',
@script = N'
import pandas as pd
ser = pd.Series([6, 7, 6 * 7])
df = pd.DataFrame(ser)
OutputDataSet = df',
@output_data_1 = @answers,
@params = N'@answers nvarchar(MAX)'
WITH RESULT SETS((Answer int))
我得到以下错误。
过程需要"ntext/nchar/nvarchar"类型的参数"@params"。
我想我已经看到了R脚本的输出,但我无法从Python中获得它。
@output_data_1
不是sp_execute_external_script
的命名参数。
语法:
sp_execute_external_script
@language = N'language',
@script = N'script'
[ , @input_data_1 = N'input_data_1' ]
[ , @input_data_1_name = N'input_data_1_name' ]
[ , @input_data_1_order_by_columns = N'input_data_1_order_by_columns' ]
[ , @input_data_1_partition_by_columns = N'input_data_1_partition_by_columns' ]
[ , @output_data_1_name = N'output_data_1_name' ]
[ , @parallel = 0 | 1 ]
[ , @params = N'@parameter_name data_type [ OUT | OUTPUT ] [ ,...n ]' ]
[ , @parameter1 = 'value1' [ OUT | OUTPUT ] [ ,...n ] ]
declare @num1 int = 10, @num2 int=5, @thesum int;
EXEC sp_execute_external_script @language=N'Python',
@script = N'
import pandas as pd
ser = pd.Series([6, 7, 6 * 7])
df = pd.DataFrame(ser)
OutputDataSet = df
a=x123
b=y345
sumresult=a+b
',
@output_data_1_name = N'OutputDataSet',
@params = N'@x123 int, @y345 int, @sumresult int output',
@x123= @num1, @y345=@num2, @sumresult = @thesum output
WITH RESULT SETS((Answer int));
select @thesum;
他们都帮了忙!我不得不转换为JSON。另请查看定向参数的各种选项。
DECLARE @answers NVARCHAR(MAX)
EXEC sp_execute_external_script @language=N'Python',
@script = N'
import pandas as pd
ser = pd.Series([6, 7, 6 * 7])
df = pd.DataFrame(ser).to_json(orient=''values'')',
@params = N'@df NVARCHAR(MAX) OUTPUT',
@df = @answers OUTPUT
--
PRINT @answers