sp_execute_external_script返回数据集输出的Python脚本



我正在使用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

最新更新