복붙노트

[HADOOP] Spark 쉘에서 직접 ORC 파일 읽기

HADOOP

Spark 쉘에서 직접 ORC 파일 읽기

Spark 쉘에서 직접 ORC 파일을 읽는 데 문제가 있습니다. 참고 : Hashop 1.2와 Spark 1.2는 pyspark 셸을 사용하여 spark-shell (스칼라 실행)을 사용할 수 있습니다.

이 리소스는 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.2.4/Apache_Spark_Quickstart_v224/content/ch_orc-spark-quickstart.html에 사용되었습니다.

from pyspark.sql import HiveContext
hiveCtx = HiveContext(sc)

inputRead = sc.hadoopFile("hdfs://user@server:/file_path",
classOf[inputFormat:org.apache.hadoop.hive.ql.io.orc.OrcInputFormat],
classOf[outputFormat:org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat])

일반적으로 잘못된 구문을 말하는 오류가 발생합니다. 한 번, 코드가 작동하는 것처럼 보였습니다. 저는 hadoopFile에 전달 된 세 개의 인수 중 첫 번째 인수 만 사용했습니다. 그러나 사용할 때

inputRead.first()

출력은 RDD였다. inputRead 변수가 RDD로 생성되지 않았거나 전혀 작성되지 않았기 때문에 이것이 가능한지 나는 알 수 없습니다.

나는 어떤 도움을 주셔서 감사합니다!

해결법

  1. ==============================

    1.Spark 1.5에서는 ORC 파일을 다음과 같이로드 할 수 있습니다.

    Spark 1.5에서는 ORC 파일을 다음과 같이로드 할 수 있습니다.

    val orcfile = "hdfs:///ORC_FILE_PATH"
    val df = sqlContext.read.format("orc").load(orcfile)
    df.show
    
  2. ==============================

    2.이 코드를 사용해 보면 저에게 효과적입니다.

    이 코드를 사용해 보면 저에게 효과적입니다.

    val LoadOrc = spark.read.option("inferSchema", true).orc("filepath")
    LoadOrc.show()
    
  3. ==============================

    3.당신은 또한에서 읽을 다중 경로를 추가 할 수 있습니다

    당신은 또한에서 읽을 다중 경로를 추가 할 수 있습니다

    val df = sqlContext.read.format("orc").load("hdfs://localhost:8020/user/aks/input1/*","hdfs://localhost:8020/aks/input2/*/part-r-*.orc")
    
  4. from https://stackoverflow.com/questions/30792494/read-orc-files-directly-from-spark-shell by cc-by-sa and MIT license