Spark Hive : DataFrame의 열을 검색 할 수 없습니다.

D. 뮐러

Hive에서 Spark를 사용해보고 있습니다. 코드에서 새 파일을 만들고 메서드 DataFrame를 사용하여 사용자 지정 데이터로 채 웁니다 HiveContext.createDataFrame.

JavaSparkContext sc = ...;
HiveContext hiveCtx = new HiveContext(sc);

StructField f1 = new StructField("columnA", DataTypes.StringType, false, null);
StructField f2 = new StructField("columnB", DataTypes.StringType, false, null);

StructType st = new StructType(new StructField[] {f1, f2});

Row r1 = RowFactory.create("A", "B");
Row r2 = RowFactory.create("C", "D");

List<Row> allRows = new ArrayList<Row>();
allRows.add(r1);
allRows.add(r2);

DataFrame testDF = hiveCtx.createDataFrame(allRows, st);

testDF.explain();                           // show the DF data

for(String col : testDF.columns()) {        // list the columns, all seems to be ok here?!
    System.out.println(col);
}

Column columnA = testDF.col("columnA"); // get the column --> exception!!!

...

위의 코드를 spark-submit명령으로 실행 하면 다음과 같은 출력이 표시됩니다.

=== APP RUNNING ===
17/03/13 12:20:29 INFO Persistence: Property hive.metastore.integral.jdo.pushdown unknown - will be ignored
17/03/13 12:20:29 INFO Persistence: Property datanucleus.cache.level2 unknown - will be ignored
17/03/13 12:20:29 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
17/03/13 12:20:29 WARN Connection: BoneCP specified but not present in CLASSPATH (or one of dependencies)
17/03/13 12:20:31 INFO Datastore: The class "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as "embedded-only" so does not have its own datastore table.
17/03/13 12:20:31 INFO Datastore: The class "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" so does not have its own datastore table.
17/03/13 12:20:32 INFO Datastore: The class "org.apache.hadoop.hive.metastore.model.MFieldSchema" is tagged as "embedded-only" so does not have its own datastore table.
17/03/13 12:20:32 INFO Datastore: The class "org.apache.hadoop.hive.metastore.model.MOrder" is tagged as "embedded-only" so does not have its own datastore table.
17/03/13 12:20:33 INFO metastore: Trying to connect to metastore with URI thrift://my-server-url:9083
17/03/13 12:20:33 INFO metastore: Connected to metastore.
== Physical Plan ==
LocalTableScan [columnA#0,columnB#1], [[A,B],[C,D]]
columnA
columnB
Exception in thread "main" java.lang.NullPointerException
        at org.apache.spark.sql.catalyst.expressions.AttributeReference.hashCode(namedExpressions.scala:218)
        at scala.runtime.ScalaRunTime$.hash(ScalaRunTime.scala:210)
        at scala.util.hashing.MurmurHash3.productHash(MurmurHash3.scala:63)
        at scala.util.hashing.MurmurHash3$.productHash(MurmurHash3.scala:210)
        at scala.runtime.ScalaRunTime$._hashCode(ScalaRunTime.scala:172)
        at scala.Tuple2.hashCode(Tuple2.scala:19)
        at scala.collection.mutable.FlatHashTable$HashUtils$class.elemHashCode(FlatHashTable.scala:391)
        at scala.collection.mutable.HashSet.elemHashCode(HashSet.scala:41)
        at scala.collection.mutable.FlatHashTable$class.findEntryImpl(FlatHashTable.scala:123)
        at scala.collection.mutable.FlatHashTable$class.containsEntry(FlatHashTable.scala:119)
        at scala.collection.mutable.HashSet.containsEntry(HashSet.scala:41)
        at scala.collection.mutable.HashSet.contains(HashSet.scala:58)
        at scala.collection.GenSetLike$class.apply(GenSetLike.scala:43)
        at scala.collection.mutable.AbstractSet.apply(Set.scala:45)
        at scala.collection.SeqLike$$anonfun$distinct$1.apply(SeqLike.scala:494)
        at scala.collection.immutable.List.foreach(List.scala:318)
        at scala.collection.SeqLike$class.distinct(SeqLike.scala:493)
        at scala.collection.AbstractSeq.distinct(Seq.scala:40)
        at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolve(LogicalPlan.scala:264)
        at org.apache.spark.sql.catalyst.plans.logical.LogicalPlan.resolveQuoted(LogicalPlan.scala:191)
        at org.apache.spark.sql.DataFrame.resolve(DataFrame.scala:151)
        at org.apache.spark.sql.DataFrame.col(DataFrame.scala:664)
        at temp.HiveTest.main(HiveTest.java:57)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

여기 내 spark-submit전화 :

spark-submit --class temp.HiveTest --master yarn --deploy-mode client /home/daniel/application.jar

왜의 전화 줄 DataFrame.col(...)NullPointerException?

알렉스 카르 포프

변경하려고 nullMetadata.empty():

StructField f1 = new StructField("columnA", DataTypes.StringType, false, Metadata.empty());
StructField f2 = new StructField("columnB", DataTypes.StringType, false, Metadata.empty());

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

PHP :: 배열 내의 모든 값을 검색 할 수 없습니다.

분류에서Dev

Groovy의 XMLHolder가 값을 검색 할 수 없습니다.

분류에서Dev

사용자의 TextBox 입력을 검색 할 수 없습니다.

분류에서Dev

Django의 ManyToManyField에서 값을 검색 할 수 없습니다.

분류에서Dev

배열 값을 검색 할 수 없습니다.

분류에서Dev

Vuetify 열을 검색하거나 정렬 할 수 없습니다.

분류에서Dev

SAP Hana Studio에서 열을 검색 할 수 없습니다.

분류에서Dev

cfc에서 날짜 배열을 검색 할 수 없습니다.

분류에서Dev

C는 mongodb BSON 배열을 검색 할 수 없습니다.

분류에서Dev

Java : 배열을 제대로 검색 할 수 없습니다.

분류에서Dev

SQL Server의 다른 열 조건에 따라 열에서 고유 한 행을 검색 할 수 없습니다.

분류에서Dev

C ++의 다차원 배열에서 올바른 부동 소수점 값을 검색 할 수 없습니다.

분류에서Dev

HIVE : 'distinct' '('근처의 입력을 인식 할 수 없습니다.

분류에서Dev

Scala Spark에서 두 개의 DataFrame을 병합 할 수 없습니다.

분류에서Dev

삽입 문에서 다른 테이블의 열 값을 검색 할 수 없습니다.

분류에서Dev

XElement를 사용하여 XML 요소의 값을 검색 할 수 없습니다.

분류에서Dev

HttpContext.Current.Session 상태의 값을 검색 할 수 없습니다.

분류에서Dev

Android / Facebook에서 친구의 앨범을 검색 할 수 없습니다.

분류에서Dev

PHP에서 괄호 안의 단어로 검색을 할 수 없습니다

분류에서Dev

Python : dict에서 numpy 행렬의 모양을 검색 할 수 없습니다.

분류에서Dev

pQuery는 웹 페이지의 내용을 검색 할 수 없습니다.

분류에서Dev

페이지 하단의 버튼을 검색 할 수 없습니다.

분류에서Dev

Laravel의 Twilio에서 통화 기록을 검색 할 수 없습니다.

분류에서Dev

div에서 검색된 문자열을 분할 할 수 없습니다.

분류에서Dev

div에서 검색된 문자열을 분할 할 수 없습니다.

분류에서Dev

사용자 역할을 검색 할 수 없습니다.

분류에서Dev

함수에서 채워진 배열을 검색 할 수 없습니다.

분류에서Dev

Kubernetes에서 apiVersion을 가져올 수 없음 : 서버 API의 전체 목록을 검색 할 수 없습니다.

분류에서Dev

Spark에서 HDFS의 파일을 사용할 수 없습니다.

Related 관련 기사

  1. 1

    PHP :: 배열 내의 모든 값을 검색 할 수 없습니다.

  2. 2

    Groovy의 XMLHolder가 값을 검색 할 수 없습니다.

  3. 3

    사용자의 TextBox 입력을 검색 할 수 없습니다.

  4. 4

    Django의 ManyToManyField에서 값을 검색 할 수 없습니다.

  5. 5

    배열 값을 검색 할 수 없습니다.

  6. 6

    Vuetify 열을 검색하거나 정렬 할 수 없습니다.

  7. 7

    SAP Hana Studio에서 열을 검색 할 수 없습니다.

  8. 8

    cfc에서 날짜 배열을 검색 할 수 없습니다.

  9. 9

    C는 mongodb BSON 배열을 검색 할 수 없습니다.

  10. 10

    Java : 배열을 제대로 검색 할 수 없습니다.

  11. 11

    SQL Server의 다른 열 조건에 따라 열에서 고유 한 행을 검색 할 수 없습니다.

  12. 12

    C ++의 다차원 배열에서 올바른 부동 소수점 값을 검색 할 수 없습니다.

  13. 13

    HIVE : 'distinct' '('근처의 입력을 인식 할 수 없습니다.

  14. 14

    Scala Spark에서 두 개의 DataFrame을 병합 할 수 없습니다.

  15. 15

    삽입 문에서 다른 테이블의 열 값을 검색 할 수 없습니다.

  16. 16

    XElement를 사용하여 XML 요소의 값을 검색 할 수 없습니다.

  17. 17

    HttpContext.Current.Session 상태의 값을 검색 할 수 없습니다.

  18. 18

    Android / Facebook에서 친구의 앨범을 검색 할 수 없습니다.

  19. 19

    PHP에서 괄호 안의 단어로 검색을 할 수 없습니다

  20. 20

    Python : dict에서 numpy 행렬의 모양을 검색 할 수 없습니다.

  21. 21

    pQuery는 웹 페이지의 내용을 검색 할 수 없습니다.

  22. 22

    페이지 하단의 버튼을 검색 할 수 없습니다.

  23. 23

    Laravel의 Twilio에서 통화 기록을 검색 할 수 없습니다.

  24. 24

    div에서 검색된 문자열을 분할 할 수 없습니다.

  25. 25

    div에서 검색된 문자열을 분할 할 수 없습니다.

  26. 26

    사용자 역할을 검색 할 수 없습니다.

  27. 27

    함수에서 채워진 배열을 검색 할 수 없습니다.

  28. 28

    Kubernetes에서 apiVersion을 가져올 수 없음 : 서버 API의 전체 목록을 검색 할 수 없습니다.

  29. 29

    Spark에서 HDFS의 파일을 사용할 수 없습니다.

뜨겁다태그

보관