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
Scala 我需要在spark流媒体中将org.apache.spark.rdd.rdd[Array[Byte]]转换为Array[Byte]_Scala_Apache Spark_Spark Streaming_Scala Collections - Fatal编程技术网

Scala 我需要在spark流媒体中将org.apache.spark.rdd.rdd[Array[Byte]]转换为Array[Byte]

Scala 我需要在spark流媒体中将org.apache.spark.rdd.rdd[Array[Byte]]转换为Array[Byte],scala,apache-spark,spark-streaming,scala-collections,Scala,Apache Spark,Spark Streaming,Scala Collections,我试图通过kafka将json文件解析为spark流 我编写了一个需要数组[Byte]的函数 stream.foreachRDD(rdd=> parseAVROToString(rdd) ) ssc.start 要使用parseAVROToString我需要Array[Byte]。 我收到以下错误消息: found : org.apache.spark.rdd.RDD[Array[Byte]] required: Array[Byte] parseAVROToString(

我试图通过kafka将json文件解析为spark流

我编写了一个需要
数组[Byte]
的函数

stream.foreachRDD(rdd=>
    parseAVROToString(rdd)
)

ssc.start
要使用
parseAVROToString
我需要
Array[Byte]
。 我收到以下错误消息:

found   : org.apache.spark.rdd.RDD[Array[Byte]] required: Array[Byte] parseAVROToString(rdd)
您可以尝试以下方法:

stream.foreachRDD(rdd => {
  rdd.foreach(record = > parseAVROToString(record))
})
但是,
foreachRDD
是一种输出操作,用于将下划线rdd保存到外部文件或数据库。我认为
stream.transform
对您的情况可能有用

您可以尝试以下方法:

stream.foreachRDD(rdd => {
  rdd.foreach(record = > parseAVROToString(record))
})

但是,
foreachRDD
是一种输出操作,用于将下划线rdd保存到外部文件或数据库。我认为
stream.transform
对您的情况可能有用

我可以传递这个函数,但是我无法打印通过parseAVROToString函数得到的字符串,因为它进入流中,有什么办法吗?试试这个
stream.foreachRDD(rdd=>{rdd.foreach(record=>{println(parseAVROToString(record))})
请注意,这将在从属节点控制台中打印记录。我想您可能会看到驱动程序控制台!检查工作节点日志。或者,如果您正在调试,请尝试以下代码
.transform(rdd=>{val parsedRDD=rdd.map(record=>{parseAVROToString(record)})parsedRDD}).print()
这将在驱动程序控制台上打印10条示例记录。它不起作用,没有办法检查我的解析函数是否真的在工作……非常感谢你的帮助!!你得到了什么?有错误吗?人们经常使用transform和print进行调试!好的,让我们这样说,你在parseAVROToString中返回了什么?你要退线吗?然后应该打印在控制台上!我可以传递这个函数,但是我无法打印通过parseAVROToString函数得到的字符串,因为它进入流中,有什么办法吗?试试这个
stream.foreachRDD(rdd=>{rdd.foreach(record=>{println(parseAVROToString(record))})
请注意,这将在从属节点控制台中打印记录。我想您可能会看到驱动程序控制台!检查工作节点日志。或者,如果您正在调试,请尝试以下代码
.transform(rdd=>{val parsedRDD=rdd.map(record=>{parseAVROToString(record)})parsedRDD}).print()
这将在驱动程序控制台上打印10条示例记录。它不起作用,没有办法检查我的解析函数是否真的在工作……非常感谢你的帮助!!你得到了什么?有错误吗?人们经常使用transform和print进行调试!好的,让我们这样说,你在parseAVROToString中返回了什么?你要退线吗?然后应该打印在控制台上!