2017-12-25 19 views
1

partitionBy으로 (이 형식 YYYY-MM-DD의 날짜의 문자열을 포함하는) 스트링 열 스파크 구조화 된 스트림 2.1을 사용 카프카 스트리밍 동안 고유성 마루 파티션 이름은 I 하나스파크 구조체 스트리밍 :

interval27e/_spark_metadata 
interval27e/interval_read_date=2010-10-27 08%3A02%3A48 
interval27e/interval_read_date=2010-10-30 04%3A27%3A34 
interval27e/interval_read_date=2010-11-03 02%3A22%3A13 
interval27e/interval_read_date=2010-11-03 07%3A27%3A08 
interval27e/interval_read_date=2010-11-14 08%3A37%3A52 
interval27e/interval_read_date=2010-11-19 01%3A46%3A50 
예상

스파크는 날짜별로 여러 디렉토리가있는 문자열 ("08 % 3A02 % 3A48")을 추가합니다.

interval3=interval2  \ 
    .writeStream 
    .format("parquet") 
    .option("path","/user/usera/interval27e") 
    .partitionBy("interval_read_date") 
    .trigger(processingTime='15 seconds') 
    .option("checkpointLocation", "/user/usera/checkpoint27e") 
    .start() 

내가 파티션으로 쓰기 마루와 관련된 다른 유래 질문에 이런 일을 준수 해달라고 :

는 writeStream 명령입니다.

어떻게 그 문자열을 디렉토리 이름에 추가하지 않고도 쪽모 세공 디렉터리 파티션을 작성할 수 있습니까?

답변

1

interval_read_date은 타임 스탬프가 아닌 데이터/날짜 형 문자열입니다. 당신이 %3Ais percent encoded: 때문에 이름은 다음과 같습니다

interval_read_date=2010-10-27 08:02:48 
interval_read_date=2010-10-30 04:27:34 
... 

당신이 바로 데이터를 사용하여 자르거나 필요에 캐스팅하고 한 번 확인하시기 바랍니다.