2017-12-11 27 views
0

Data Lake Analytics의 python 스크립트에 데이터를 전달하려고합니다.USQL + Python - 정의와 일치하지 않는 스키마

나는 오류를 명확하게 보여주기 위해 이것을 벗겼다. 나는 아주 간단한 테이블

@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; 

그래서 테이블 형식 INT, INT, 플로트는이 파이썬이 실제로 :-) ...

을 아무것도하지 않습니다 이해합니다.

나는 다음과 같은 오류 받기

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(); 

실행하려고하면 "파이썬 반환

dataframe 스키마 (선택 System.Int32, 선택 System.Int32, System.Double)를 일치 U-SQL을 수행 스키마에서 (System.Int32, System.Int32, System.Single) "출력"에서 명시 적으로 "float"을 정의했을 때 U-SQL 스키마가 세 번째 열에 대해 System.Single을 기대하는 이유를 알기 쉽게 설명합니다.

감사합니다.

답변