Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark Streaming:文本数据源仅支持一列_Apache Spark_Hadoop_Spark Streaming - Fatal编程技术网

Apache spark Spark Streaming:文本数据源仅支持一列

Apache spark Spark Streaming:文本数据源仅支持一列,apache-spark,hadoop,spark-streaming,Apache Spark,Hadoop,Spark Streaming,我正在使用Kafka数据,然后将数据流传输到HDFS 存储在Kafkatopictrial中的数据如下: hadoop hive hive kafka hive 但是,当我提交代码时,它会返回: 线程“main”中出现异常 我的问题是:如上所示,Kafka中存储的数据只包含一列,为什么程序说有7列 感谢您的帮助 Myspark streaming代码: def main(args: Array[String]): Unit = { val spark = SparkSession .bu

我正在使用
Kafka
数据,然后将数据流传输到
HDFS

存储在
Kafka
topic
trial
中的数据如下:

hadoop
hive
hive
kafka
hive
但是,当我提交代码时,它会返回:

线程“main”中出现异常

我的问题是:如上所示,
Kafka
中存储的数据只包含一列,为什么程序说有
7列

感谢您的帮助


My
spark streaming
代码:

def main(args: Array[String]): Unit = {
val spark = SparkSession
  .builder.master("local[4]")
  .appName("SpeedTester")
  .config("spark.driver.memory", "3g")
  .getOrCreate()

val ds = spark.readStream
  .format("kafka")
  .option("kafka.bootstrap.servers", "192.168.95.20:9092")
  .option("subscribe", "trial")
  .option("startingOffsets" , "earliest")
  .load()
  .writeStream
  .format("text")
  .option("path", "hdfs://192.168.95.21:8022/tmp/streaming/fixed")
  .option("checkpointLocation", "/tmp/checkpoint")
  .start()
  .awaitTermination()
 }
这在以下章节中进行了解释:

源中的每一行都具有以下架构:

柱型

密钥二进制

值二进制

主题字符串

分区整数

等距长

时间戳长

时间戳类型int

正好有七列。如果要仅写入有效负载(值),请选择它并转换为字符串:

spark.readStream
...
.load()
.selectExpr(“转换(值为字符串)”)
.writeStream
...
.终止

谢谢。我看到了这一部分,但没有意识到。
def main(args: Array[String]): Unit = {
val spark = SparkSession
  .builder.master("local[4]")
  .appName("SpeedTester")
  .config("spark.driver.memory", "3g")
  .getOrCreate()

val ds = spark.readStream
  .format("kafka")
  .option("kafka.bootstrap.servers", "192.168.95.20:9092")
  .option("subscribe", "trial")
  .option("startingOffsets" , "earliest")
  .load()
  .writeStream
  .format("text")
  .option("path", "hdfs://192.168.95.21:8022/tmp/streaming/fixed")
  .option("checkpointLocation", "/tmp/checkpoint")
  .start()
  .awaitTermination()
 }