2017-12-11 5 views
0

私はData Lake Analyticsのpythonスクリプトにデータを渡そうとしています。USQL + Python - 定義に一致しないスキーマ

私はエラーをはっきりと示すためにこれを取り除きました。私はテーブル形式がint、int型、float型である私は

@FormattedCasinoData = 
    SELECT int.Parse(UserID) AS [UserID], 
      int.Parse(ModelID) AS [ModelID], 
      float.Parse(Value) AS [Value] 
    FROM @CasinoData 
    WHERE UserID != "UserID" 
    ORDER BY UserID 
    FETCH 1000 ROWS; 

非常に単純なテーブルを持っている:-)

... Pythonは実際に何もしていません理解しています。

私はこの

REFERENCE ASSEMBLY [ExtPython]; 

DECLARE @myScript = @" 
def usqlml_main(df): 
    return df 
"; 

@pythonOutput = 
    REDUCE @FormattedCasinoData ON [UserID] 
    PRODUCE [UserID] int, [ModelID] int, [Value] float 
    USING new Extension.Python.Reducer(pyScript:@myScript); 

OUTPUT @pythonOutput 
    TO @"adl://mydatalake.azuredatalakestore.net/myFolder/PythonOutput20171208.csv" 
    USING Outputters.Csv(); 

を実行しようとすると、私は次のエラーを取得する:

「Pythonはデータフレームのスキーマ(可能System.Int32、可能System.Int32、System.Doubleは)試合U-SQLを行い返さスキーマ(System.Int32、System.Int32、System.Single) "

なぜ私は明示的に"フロート "を出力に定義した場合、U-SQLスキーマが3番目の列に対してSystem.Singleを必要としているか考えてください。

ありがとうございます!

答えて

関連する問題