SQL Serverのデータベース内RアナリティックでscaleRスクリプトをT-SQL(external_script実行)に変換しようとしています。私が作業しているscaleRスクリプトはです。
私のデータはすべてSQL Server上にあります(チュートリアルから)。rxSummary
scaleR関数(データベース内)を使用してこのテーブルをクエリして要約を取得するだけです。
これは私の試みです:データベース内R統合のための外部スクリプトを実行するT-SQL
exec sp_execute_external_script
@language = N'R',
@script = N'
sumOut <- rxSummary(
formula = ~gender + balance + numTrans + numIntlTrans + creditLine,
data = ccFraud
)
',
@input_data_1 = N'select * from [DeepDive].[db_datareader].[ccFraudSmall]',
@input_data_1_name = N'ccFraud',
@output_data_1_name = N'summary'
with result sets ((summary varchar(max) not null));
しかし、これはエラーをスローします:
STDOUT message(s) from external script: Rows Read: 10000, Total Rows Processed: 10000, Total Chunk Time: Less than .001 seconds Computation time: 0.000 seconds. Msg 11536, Level 16, State 1, Line 5 EXECUTE statement failed because its WITH RESULT SETS clause specified 1 result set(s), but the statement only sent 0 result set(s) at run time.
これに対処するためにどのように任意のアイデアを?
ステップがありませんか?
ありがとう、それは要約結果を表示するために働いた。しかし、SummaryをSQL Serverに保存するときに、Rスクリプトにsummary < - data.frame(sumOut)を追加しようとしましたが、rxSummaryをデータフレームに強制できないというエラーが発生します。 – Raj
rxSummaryオブジェクトをSQL Serverにバイナリとして保存しようとしていますか?要約< '使用してみてください - 直列化(sumOut、NULL);' –
は、これが今の私のコードです: '@Script = N」 \t \t \t \t sumOut < - rxSummary( \t \t \t \t \t \t \t \t \t式= 〜男女+バランス+ numTrans + numIntlTrans + creditLine、 \t \t \t \t \t \t \t \t \tデータ= ccFraud \t \t \t \t \t \t \t \t \t) \t \t \t \tプリント(sumOut) \t \t \t \t要約< - シリアライズ(sumOut、NULL); \t \t \t \t」、input_data_1 = N'select @ \t * [DeepDive]から[のdb_datareader]。【ccFraud10] ' \t @ input_data_1_name = N'ccFraud'、 @ output_data_1_name = N'summary」結果セット((要約のvarbinary(max)がnullでない))と \t \t; ' このエラーを表示します_The出力データセットはデータフレームタイプでなければなりません。それを変換するためにdata.frame()を使用することを検討してください。 – Raj