보기에서 사용자 지정 C# 어셈블리가 사용되는 경우 컴파일러는 네임 스페이스에 대한 참조를 찾지 못합니다. 어셈블리가 쿼리에서 참조되고 호출되지만 뷰에서 호출되지 않으면 작동합니다.사용자 지정 어셈블리가 뷰에서 참조되지 않음
예를 들어,보기를 만드는이 U-SQL 스크립트를 고려 : 은이 쿼리를 실행하기 전에 mylocaldb에 등록되어 사용되는 어셈블리, 어떤 스크립트에 액세스 할 수 있습니다.
USE DATABASE mylocaldb;
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
USING Newtonsoft.Json;
USING Microsoft.Analytics.Samples.Formats.Json;
DROP VIEW IF EXISTS SearchAccountData;
CREATE VIEW MyView AS
EXTRACT
UserId string,
UserName string
FROM "Data/mydata.json"
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor();
스크립트의 실행 후, 뷰가 생성됩니다 및 조회 수 mylocaldb 데이터베이스에하에 저장됩니다. 다른 쿼리에서보기를 사용하면
:
USE DATABASE mylocaldb;
USE SCHEMA dbo;
REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];
USING Newtonsoft.Json;
USING Microsoft.Analytics.Samples.Formats.Json;
@foo= SELECT * FROM MyView;
OUTPUT @foo
TO "/output/foo.csv"
USING Outputters.Csv();
합니다 (USE SCHEMA dbo
는 다른 스키마가 사용중인 경우와 데이터베이스 기본값으로 필요하지 않습니다) :
컴파일러가를 던졌습니다 오류 :
E_CSC_USER_INVALIDCSHARP: C# error CS0234: The type or namespace name 'Samples' does not exist in the namespace 'Microsoft.Analytics' (are you missing an assembly reference?)
지금이 U-SQL과 함께 제공되는 라이브러리와 충돌 할 수 있습니다 Microsoft.Analytics
를,하지만 난 또 다른 한개를 사용하여 시도 ssembly를 다른 네임 스페이스로 바꾸면 여전히 동일한 문제가 발생합니다.
VisualStudio에서 (로컬) 계정을 사용하여 로컬에서 테스트하고 있습니다.
정확하고 문서를 업데이트하기위한 티켓을 보내 드리겠습니다. 위대한 당신이 너무 빨리 정보를 찾을 수 있었던 볼 수 :) –