Hive Crie vários arquivos pequenos para cada inserção no HDFS

o seguinte já foi alcançado

Produtor Kafka que extrai dados do twitter usando o Spark Streaming.Consumidor Kafka que ingere dados na tabela Hive External (no HDFS).

enquanto isso está funcionando bem até agora. há apenas um problema que estou enfrentando, enquanto meu aplicativo insere dados na tabela Hive, ele criou um pequeno arquivo com cada linha de dados por arquivo.

abaixo está o código

// Define which topics to read from
  val topic = "topic_twitter"
  val groupId = "group-1"
  val consumer = KafkaConsumer(topic, groupId, "localhost:2181")

//Create SparkContext
  val sparkContext = new SparkContext("local[2]", "KafkaConsumer")

//Create HiveContext  
  val hiveContext = new org.apache.spark.sql.hive.HiveContext(sparkContext)

  hiveContext.sql("CREATE EXTERNAL TABLE IF NOT EXISTS twitter_data (tweetId BIGINT, tweetText STRING, userName STRING, tweetTimeStamp STRING,   userLang STRING)")
  hiveContext.sql("CREATE EXTERNAL TABLE IF NOT EXISTS demo (foo STRING)")

Colmeia tabela de demonstração já preenchida com um único registro. Kafka loop do consumidor através dos dados para topic = "topic_twitter" no processo de cada linha e preenchido na tabela Hive

val hiveSql = "INSERT INTO TABLE twitter_data SELECT STACK( 1," + 
    tweetID        +","  + 
    tweetText      +"," + 
    userName       +"," +
    tweetTimeStamp +","  +
    userLang + ") FROM demo limit 1"

hiveContext.sql(hiveSql)

abaixo estão as imagens do meu ambiente Hadoop.twitter_data, demo

últimos 10 arquivos criados no HDFS

Como você pode ver, o tamanho do arquivo não é superior a 200 KB, existe uma maneira de mesclar esses arquivos em um arquivo?

questionAnswers(3)

yourAnswerToTheQuestion