2016-07-04 7 views
0

しないスロー - 下のリンク:私はrxPredictコマンドを実行するとrxPredictは、SQL Serverは、私は、MSDNのSQL ServerのRサービスのチュートリアルアウトしようとしています存在しないか、またはアクセス拒否エラー

https://msdn.microsoft.com/en-us/library/mt629164.aspx

を:

rxPredict(modelObject = logitObj, 
      data = featureDataSource, 
      outData = scoredOutput, 
      predVarNames = "Score", 
      type = "response", 
      writeModelVars = TRUE, 
      overwrite = TRUE) 
私が持っている

====== SG01NB-4300092 (process 1) has started run at 2016-07-04 09:43:35.00 ====== 

[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. 
Caught exception in file: CxAnalysis.cpp, line: 5682. ThreadID: 13560 Rethrowing. 
Caught exception in file: CxAnalysis.cpp, line: 5249. ThreadID: 13560 Rethrowing. 

[Microsoft][ODBC Driver Manager] Connection not open 

ODBC Error in SQLDisconnect 
Error in doTryCatch(return(expr), name, parentenv, handler) : 

[Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied. 
Calls: source ... tryCatch -> tryCatchList -> tryCatchOne -> doTryCatch -> .Call 

Execution halted 

Error in rxCompleteClusterJob(hpcServerJob, consoleOutput, autoCleanup) : 
    No results available - final job state: failed 

は、私は次のエラーを取得しますrxSetComputeContext(cc)がテーブルを作成できる有効なユーザログインを使用していることを確認しました。また、私が作業しているローカルマシンにSQL Serverをインストールしているので、ネットワークの問題にはなりません。

この問題が発生した人は誰ですか?このステートメントを正常に実行できますか?

お返事ありがとうございました!

イアン

答えて

0

私はこの問題は、OUTDATA = scoredOutput文であることがわかりました。 outData = NULLを設定してサーバーコンテキストをローカルに変更すると、rxPredictから出力を生成することができます。

rxSetComputeContext( "local")でrxPredictを実行して、出力データフレーム(outDF)を取得し、rxDataStep(inData = outDF、outFile = scoredOutput、overwrite = TRUE)

rxSetComputeContext("local") 

fds <- rxImport(featureDataSource) 

outDF <- structure(list(Score = numeric(), 
         tipped = integer(), 
         passenger_count = numeric(), 
         trip_distance = numeric(), 
         trip_time_in_secs = numeric(), 
         direct_distance = numeric()), 
        class = "data.frame") 

outDF <- rxPredict(modelObject = logitObj, data = fds, outData = NULL, 
      predVarNames = "Score", type = "response", 
      writeModelVars = TRUE, overwrite = TRUE) 

# reset the compute context to the server and persist the df result to the table 
rxSetComputeContext(cc) 

rxDataStep(inData = outDF, outFile = scoredOutput, overwrite=TRUE) 

誰かがより良いアプローチをお持ちでしたら、私にお知らせください!

おかげ

イアン

0

はあなたに代わってSQL Serverにログインする権限を(Rスクリプトを実行するために使用されている)労働者/ Launchpadのアカウントを提供していることを確認してください。詳細はEnable Implied Authentication for Launchpad Accountsを参照してください。

+0

ありがとうArun! –

+0

@ArunGurunathan、暗黙の認証を有効にした後でもこのエラーが発生します。この問題は、リモートでの接続ではないと私は思っています。なぜなら、私は照会でき、要約統計量を得ることができ、SQL計算コンテキストで線形回帰モデルとロジスティック回帰モデルを構築することもできます。 rxPredictを使用している場合にのみエラーがスローされます。何か案は? – Minu

+0

SQL Serverはローカルまたはリモートサーバーまたはクラウド上で動作していますか?あなたは完全なエラーメッセージ/スクリプトを共有できますか? –

0

私は長い間このエラーを処理してきました。私のSQL Server 2016 VMのうちの1台でスクリプトが実行されますが、それ以外は実行されないというのは奇妙なことです。そこで、両方のサーバーのプロパティを比較し、インストール後の手順を忘れていないことを確認しました。

@ArunGurunathanのおかげで、私はこれらの差異を探している間に異常を発見しました。 SQL Serverマシン自体を開き、ファイアウォールの設定を調べると、Rのローカルユーザーアカウントへのネットワークアクセスをブロックするルールがあることがわかりました。私はそのルールを無効にし、スクリプト(rxPredict)はエラーなしで実行されました。

あなたに適しているかどうか教えてください。

enter image description here

+0

実行しているSQL Serverのバージョンを明確にすることはできますか(SSMSの 'PRINT @@ VERSION'コマンドを実行するなど)? Rプロセスがネットワーク経由で通信できるようにするためにファイアウォールルールをオフにすることは、セキュリティ上の問題の可能性があるため、運用シナリオでは推奨されません。 –

+0

@ArunGurunathan、Windows Server 2012 R2 Datacenter 6.3 でMicrosoft SQL Server 2016(RTM) - Enterprise Edition(64-bit)を使用しています。 また、チップに感謝します。そのため、ファイアウォールルールを無効にすることは回避策に過ぎず、この問題に対する修正ではありません。 – Minu

0

私は&エラーMSGの同じ問題の成功を持っていた: enter image description here

がOUTDATA方法は、SQL DBに書き込むために権限を与える はなくてSQLRUser グループを可能にすることによって、それを固定していませんでした問題のDBへの書き込みアクセス。

修正は基本的にあなたが具体的にコントロールパネルからユーザーアカウントに移動して、あなたが20個のアカウントでSQLRのUserGroupが表示されますLaunchpadのアカウント

のための暗黙の認証の有効化されている enter image description here

を適用します。

書き込みアクセス権を持つサーバーおよびDBテーブルでのこれらのアクセス許可。

あなたが正しく見えるはずです。幸運

+0

ランチパッドアカウントの暗黙認証を有効にする 特に、コントロールパネルからユーザーアカウントに移動すると、20アカウントのSQLR UserGroupが表示されます。 書き込みアクセス権を持つサーバーおよびDBテーブルでこれらを許可します。 これはあなたが正しく見えるはずです。がんばろう – fintangillane

関連する問題