小编and*_*ani的帖子

Spark 流异常:java.util.NoSuchElementException:None.get

我SparkStreaming通过将数据转换为数据帧来将数据写入 HDFS:

代码

object KafkaSparkHdfs {

  val sparkConf = new SparkConf().setMaster("local[*]").setAppName("SparkKafka")
  sparkConf.set("spark.driver.allowMultipleContexts", "true");
  val sc = new SparkContext(sparkConf)

  def main(args: Array[String]): Unit = {
    val sqlContext = new org.apache.spark.sql.SQLContext(sc)
    import sqlContext.implicits._

    val ssc = new StreamingContext(sparkConf, Seconds(20))

    val kafkaParams = Map[String, Object](
      "bootstrap.servers" -> "localhost:9092",
      "key.deserializer" -> classOf[StringDeserializer],
      "value.deserializer" -> classOf[StringDeserializer],
      "group.id" -> "stream3",
      "auto.offset.reset" -> "latest",
      "enable.auto.commit" -> (false: java.lang.Boolean)
    )

    val topics = Array("fridaydata")
    val stream = KafkaUtils.createDirectStream[String, String](
      ssc, PreferConsistent, Subscribe[String, String](topics, kafkaParams)
    )

    val …
Run Code Online (Sandbox Code Playgroud)

hadoop apache-kafka apache-spark spark-streaming apache-spark-sql

6
推荐指数
1
解决办法
2万
查看次数

如何附加到 HDFS 中的同一文件(spark 2.11)

我正在尝试使用 SparkStreaming 将流数据存储到 HDFS 中,但它不断在新文件中创建,而不是附加到一个文件或多个文件中

如果它不断创建n个文件,我觉得效率不会很高

HDFS文件系统 在此输入图像描述

代码

lines.foreachRDD(f => {
  if (!f.isEmpty()) {
    val df = f.toDF().coalesce(1)
    df.write.mode(SaveMode.Append).json("hdfs://localhost:9000/MT9")
  }
 })
Run Code Online (Sandbox Code Playgroud)

在我的 pom 中,我使用各自的依赖项:

  • 火花核心_2.11
  • Spark-SQL_2.11
  • 火花流_2.11
  • 火花流-kafka-0-10_2.11

apache-spark spark-streaming apache-spark-sql

4
推荐指数
1
解决办法
7573
查看次数