Apache Spark 2.0 parquet 파일은 Apache Arrow와 호환되지 않습니까?

혼자

문제

Python 환경에서 딥 러닝 애플리케이션을위한 쪽모이 세공 파일로 Apache Spark DataFrame을 작성했습니다. 나는 현재 앞서 언급 한 파일을 읽을 때 petastorm ( 이 노트북에 이어 )과 horovod 프레임 워크 의 기본 예제를 구현하는 데 문제가 있습니다. DataFrame에는 다음과 같은 유형이 있습니다. DataFrame[features: array<float>, next: int, weight: int](DataBricks의 노트북에서와 마찬가지로 저는 featuresVectorUDT 였는데, 배열로 변환했습니다).
두 경우 모두 Apache Arrow에서 ArrowIOError : Invalid parquet file. Corrupt footer.오류가 발생합니다.

지금까지 찾은 것

내가 발견 이 질문 과에서 이 PR 버전 2.0로, 불꽃 작성하지 않는 _metadata또는 _common_metadata하지 않는 한, 파일을 spark.hadoop.parquet.enable.summary-metadata로 설정 true스파크의 구성; 해당 파일이 실제로 누락되었습니다.
따라서이 환경에서 내 DataFrame을 다시 작성하려고 시도했지만 여전히 _common_metadata파일 이 없습니다 . 또한 작동하는 것은 독자를 구성 할 때 스키마를 petastorm에 명시 적으로 전달하는 schema_fieldsmake_batch_reader입니다 (예를 들어 전달 합니다. horovod.spark.keras.KerasEstimator의 생성자 에 그러한 매개 변수가 없기 때문에 horovod의 문제입니다 ).

가능하다면 Spark가 해당 파일을 출력하거나 Arrow에서 스키마를 추론하기 위해 Spark 가하는 것처럼 어떻게 할 수 있습니까?

Horovod의 최소 예

# Saving df
print(spark.config.get('spark.hadoop.parquet.enable.summary-metadata')) # outputs 'true'
df.repartition(10).write.mode('overwrite').parquet(path)

# ...

# Training
import horovod.spark.keras as hvd
from horovod.spark.common.store import Store

model = build_model()
opti = Adadelta(learning_rate=0.015)
loss='sparse_categorical_crossentropy'
store = Store().create(prefix_path=prefix_path,
                       train_path=train_path,
                       val_path=val_path)
keras_estimator = hvd.KerasEstimator(
    num_proc=16,
    store=store,
    model=model,
    optimizer=opti,
    loss=loss,
    feature_cols=['features'],
    label_cols=['next'],
    batch_size=auto_steps_per_epoch,
    epochs=auto_nb_epochs,
    sample_weight_col='weight'
)

keras_model = keras_estimator.fit_on_parquet() # Fails here with ArrowIOError
혼자

문제는 pyarrow 0.14+ ( issues.apache.org/jira/browse/ARROW-4723 ) 에서 해결되었으며 , pip로 업데이트 된 버전을 설치해야합니다 (Databricks Runtime 6.5까지, 포함 된 버전은 0.13입니다). 이것을 지적한 @joris '의 의견에
감사드립니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

일부 HDD가 Linux와 호환되지 않습니까?

분류에서Dev

Apache Spark에서 분할 된 parquet의 지연로드

분류에서Dev

Spark 스트리밍-원인 : org.apache.parquet.io.ParquetDecodingException : 파일의 블록 0에서 1의 값을 읽을 수 없습니다.

분류에서Dev

Apache2 : <파일>이 다시 쓰기 대체에 적용되지 않음

분류에서Dev

Nativescript와 Angular Universal은 서로 호환되지 않습니까?

분류에서Dev

DROPMALFORMED가 Apache Spark에서 적절한 결과를 반환하지 않습니다.

분류에서Dev

Apache2 와일드 카드가 올바른 DocumentRoot를 표시하지 않음

분류에서Dev

apache2 구성 파일에서 환경 변수에 액세스하는 방법은 무엇입니까?

분류에서Dev

max_pooling2d_5 레이어의 입력 0이 레이어와 호환되지 않습니다.

분류에서Dev

일부 HDD가 Linux와 호환되지 않습니까?

분류에서Dev

Ubuntu와 호환되지 않는 특정 파일 확장자가 있습니까?

분류에서Dev

Apache2가 시작되지 않음 : libaprutil-1.so.0 => 찾을 수 없음

분류에서Dev

Apache2는 Arch Linux에서 시작되지 않습니다.

분류에서Dev

org.apache.struts2.json.JSONException : 속성에 호환되지 않는 유형

분류에서Dev

Apache Spark (graphx)는 모든 코어와 메모리를 사용하지 않을 수 있습니다.

분류에서Dev

Apache Karaf 2와 3의 차이점은 무엇입니까?

분류에서Dev

경고 : Apache가 'prefork', 'worker'또는 'event'MPM으로 컴파일되지 않은 것 같습니다.-Rails-Apache2-Passenger

분류에서Dev

경고 : Apache가 'prefork', 'worker'또는 'event'MPM으로 컴파일되지 않은 것 같습니다.-Rails-Apache2-Passenger

분류에서Dev

mod_xsendfile이 Apache 2.4와 호환되지 않습니까?

분류에서Dev

파일을 SQL 데이터와 비교하는 Apache Spark

분류에서Dev

apache2 : 구성 파일 /etc/apache2/apache2.conf를 열 수 없습니다 : 입력 / 출력 오류

분류에서Dev

Apache Spark EC2 c4.2xlarge가 시작되지 않음

분류에서Dev

Apache2 gzip이 작동하지 않습니까?

분류에서Dev

Apache Spark : Spark 제출시 JAR 파일이 제공되지 않음

분류에서Dev

Apache Spark에서 RowMatrix와 Matrix의 차이점은 무엇입니까?

분류에서Dev

Apache2가 내 conf 파일을 읽지 않습니다.

분류에서Dev

구분되지 않은 ASCII 파일 읽기 Apache Pig Latin

분류에서Dev

Postgre와 pyodbc의 부울은 호환되지 않습니까?

분류에서Dev

Apache Spark UDF (Java에서)에서 Tuple2를 반환 할 수 있습니까?

Related 관련 기사

  1. 1

    일부 HDD가 Linux와 호환되지 않습니까?

  2. 2

    Apache Spark에서 분할 된 parquet의 지연로드

  3. 3

    Spark 스트리밍-원인 : org.apache.parquet.io.ParquetDecodingException : 파일의 블록 0에서 1의 값을 읽을 수 없습니다.

  4. 4

    Apache2 : <파일>이 다시 쓰기 대체에 적용되지 않음

  5. 5

    Nativescript와 Angular Universal은 서로 호환되지 않습니까?

  6. 6

    DROPMALFORMED가 Apache Spark에서 적절한 결과를 반환하지 않습니다.

  7. 7

    Apache2 와일드 카드가 올바른 DocumentRoot를 표시하지 않음

  8. 8

    apache2 구성 파일에서 환경 변수에 액세스하는 방법은 무엇입니까?

  9. 9

    max_pooling2d_5 레이어의 입력 0이 레이어와 호환되지 않습니다.

  10. 10

    일부 HDD가 Linux와 호환되지 않습니까?

  11. 11

    Ubuntu와 호환되지 않는 특정 파일 확장자가 있습니까?

  12. 12

    Apache2가 시작되지 않음 : libaprutil-1.so.0 => 찾을 수 없음

  13. 13

    Apache2는 Arch Linux에서 시작되지 않습니다.

  14. 14

    org.apache.struts2.json.JSONException : 속성에 호환되지 않는 유형

  15. 15

    Apache Spark (graphx)는 모든 코어와 메모리를 사용하지 않을 수 있습니다.

  16. 16

    Apache Karaf 2와 3의 차이점은 무엇입니까?

  17. 17

    경고 : Apache가 'prefork', 'worker'또는 'event'MPM으로 컴파일되지 않은 것 같습니다.-Rails-Apache2-Passenger

  18. 18

    경고 : Apache가 'prefork', 'worker'또는 'event'MPM으로 컴파일되지 않은 것 같습니다.-Rails-Apache2-Passenger

  19. 19

    mod_xsendfile이 Apache 2.4와 호환되지 않습니까?

  20. 20

    파일을 SQL 데이터와 비교하는 Apache Spark

  21. 21

    apache2 : 구성 파일 /etc/apache2/apache2.conf를 열 수 없습니다 : 입력 / 출력 오류

  22. 22

    Apache Spark EC2 c4.2xlarge가 시작되지 않음

  23. 23

    Apache2 gzip이 작동하지 않습니까?

  24. 24

    Apache Spark : Spark 제출시 JAR 파일이 제공되지 않음

  25. 25

    Apache Spark에서 RowMatrix와 Matrix의 차이점은 무엇입니까?

  26. 26

    Apache2가 내 conf 파일을 읽지 않습니다.

  27. 27

    구분되지 않은 ASCII 파일 읽기 Apache Pig Latin

  28. 28

    Postgre와 pyodbc의 부울은 호환되지 않습니까?

  29. 29

    Apache Spark UDF (Java에서)에서 Tuple2를 반환 할 수 있습니까?

뜨겁다태그

보관