[英]sp_execute_external_script Python script returning a dataset output
I am working with SQL Server Machine Learning.我正在使用 SQL 服务器机器学习。 I am trying to get output from the script.我正在尝试从脚本中获取 output 。
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))
I am getting the following error.我收到以下错误。
Procedure expects parameter '@params' of type 'ntext/nchar/nvarchar'.过程需要类型为“ntext/nchar/nvarchar”的参数“@params”。
I think I have seen output from R scripts, but I am not able to get it from Python.我想我已经从 R 脚本中看到了 output,但我无法从 Python 中得到它。
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;
@output_data_1
is not a named parameter to sp_execute_external_script
. @output_data_1
不是sp_execute_external_script
的命名参数。
Syntax:句法:
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 ] ]
They both helped.他们俩都有帮助。 I had to convert to JSON.我必须转换为 JSON。 Also look at the various options to the orient param.还要查看 orient 参数的各种选项。
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.