简体   繁体   English

sp_execute_external_script Python 脚本返回数据集 output

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM