2017-10-30 1 views
0

모든 열을 한 행으로 추출하는 USQL 스크립트 (.CSV 파일)를 추출했습니다. 그러나 작업이 실패하면 모든 파일을 처리 할 수 ​​없습니다. 우리가 얻는 오류 메시지는 "VERTEX FAILED FAST"입니다. 그러나 파일 형식을 (.Csv) (MS-DOS) 확장자로 변환하면 작업이 실행됩니다. 누군가 문제를 파악하고 해결 방법을 알려 주실 수 있습니까? 또는 행의 모든 ​​열을 추출하는 다른 방법으로도 도움이됩니다. 우리는 또한 스크립트를 첨부합니다.추출시 U-SQL 오류

$scripts = @" 
@rs = 
    EXTRACT 
     line string, 
     filename string 
    FROM "$filepath/$jobid/{filename}.csv" 
    USING Extractors.Text(delimiter:'\n', skipFirstNRows: 1); 
@j = 
    SELECT * 
    FROM @rs; 
@rs1 = 
    SELECT * 
    FROM @j 
    WHERE $output; 

@k= 
    SELECT filename,COUNT() AS Count1 
    FROM @j 
    WHERE $output 
    GROUP BY filename; 
OUTPUT @rs1 
    TO "$filepath/$jobid/logdata.txt" 
    USING Outputters.Text(); 

OUTPUT @k 
    TO "$filepath/$jobid/count.txt" 
    USING Outputters.Text(); 

"@ 

답변

0

처음에는 현재 오류 메시지가 잘 보이지 않습니다. Vertex Failed Fast 오류 메시지에는 실제로 버텍스가 실패한 원인을 알려주는 자세한 정보가 포함되어 있습니다. 그 정보가 있습니까? 그것 없이는 추측하지 않고 질문에 대답하기가 어렵습니다.

는 종종 정점에 대한 근본 원인은 다음 범주 중 하나에 빠른 적합을 실패했다 가졌 :

  1. 귀하의 행이 예상보다 컬럼의 다른 번호를 가지고있다. 이것은 여기에 해당하지 않습니다.

  2. 행에 지정된 데이터 형식으로 캐스팅 할 수없는 데이터가 있습니다. 또 다시, 당신의 경우에는있을 법하지 않습니다.

  3. 행/셀에 데이터 유형에 비해 너무 큰 데이터가 있습니다. CSV 파일 인코딩을 변경하면 작동 여부가 4 일 수 있다고 언급했기 때문에이 경우가 될 수 있습니다.이 경우 4 행이 될 수 있으므로 행을 자르거나 분할 할 방법을 찾아야합니다 여러 행에 걸쳐

  4. 파일의 인코딩은 UTF-8 (기본 설정으로 가정)이지만 다른 인코딩은 아니며 오류가 발생합니다 (잘못된 인코딩 또는 처음 세 가지 옵션 중 하나). 이 경우 적절한 인코딩을 지정하거나 파일의 인코딩을 변경하십시오.

이 문제가 해결되지 않는 경우 usql (at) microsoft.com에 작업 링크를 전달하십시오.

+1

감사합니다. 이 사건은 아니었다. 우리를 위해 4! 추출기 문에서 인코딩을 UTF8로 명시 적으로 언급했습니다! 이제 완벽하게 달리고 있습니다! –

관련 문제