복붙노트

[HADOOP] 하이브 테이블을 생성하는 동안 <EOF> 오류를 예상하는 일치하지 않는 입력 'ROW'

HADOOP

하이브 테이블을 생성하는 동안 오류를 예상하는 일치하지 않는 입력 'ROW'

java를 사용하여 하이브 테이블을 만들려고합니다.

내 코드는 다음과 같습니다.

import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
public class HiveCreateTable {
   private static String driverName = "com.facebook.presto.jdbc.PrestoDriver";

   public static void main(String[] args) throws SQLException {

      // Register driver and create driver instance
      try {
        Class.forName(driverName);
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
      System.out.println("haiiiiii");
      Connection con =  DriverManager.getConnection("jdbc:presto://192.168.1.100:8023", "", "");
      con.setCatalog("hive");
      con.setSchema("log");
      Statement stmt = con.createStatement();
      ResultSet res = stmt.executeQuery("create table access_log (c_ip  varchar,cs_username varchar,cs_computername varchar,cs_date     varchar,cs_code varchar,cs_method varchar,cs_uri_stem   varchar,cs_uri_query varchar,cs_status_code varchar,cs_bytes varchar)   ROW FORMAT DELIMITED FIELDS     TERMINATED BY '\b'LINES TERMINATED BY   '\n'STORED AS TEXTFILE");
      System.out.println("Table access_log4 created.");
    ResultSet res1 = stmt.executeQuery("LOAD DATA LOCAL INPATH  '/home/hadoop/access_log.txt'" + "OVERWRITE INTO TABLE access_log4;");
      System.out.println("data loaded to access_log4.");
    con.close();
   }
}

다음 오류가 발생합니다.

" '\ b'LINE TERMINATED BY'\ n'STORED AS TEXTFILE로 종료 '행 테이블을 제거하면 데이터가로드되지 않습니다.

해결법

    from https://stackoverflow.com/questions/31825086/mismatched-input-row-expecting-eof-error-while-creating-hive-table by cc-by-sa and MIT license