Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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流上的DStream.transform()中使用SQL?_Scala_Apache Spark_Spark Streaming_Apache Spark Sql - Fatal编程技术网

Scala 在Spark流上的DStream.transform()中使用SQL?

Scala 在Spark流上的DStream.transform()中使用SQL?,scala,apache-spark,spark-streaming,apache-spark-sql,Scala,Apache Spark,Spark Streaming,Apache Spark Sql,在foreachRDD()中有一些使用SQL over Spark流的示例。但是如果我想在tranform()中使用SQL: 我犯了这样的错误: [错误]/Users/raochenlin/Downloads/spark-1.2.0-bin-hadoop2.4/logstash/src/main/scala/logstash.scala:52:方法转换没有类型参数:(transformFunc:org.apache.spark.rdd.rdd[String]=>org.apache.spark.

foreachRDD()
中有一些使用SQL over Spark流的示例。但是如果我想在
tranform()
中使用SQL:

我犯了这样的错误:


[错误]/Users/raochenlin/Downloads/spark-1.2.0-bin-hadoop2.4/logstash/src/main/scala/logstash.scala:52:方法转换没有类型参数:(transformFunc:org.apache.spark.rdd.rdd[String]=>org.apache.spark.rdd.rdd[U])(隐式证据$5:scala.reflect.ClassTag[U])org.apache.spark.stream.dstream.dstream[U]存在,以便将其应用于参数(org.apache.spark.rdd.rdd[String]=>org.apache.spark.rdd.rdd[\u>:LogStash.AlertMsg with String
dstream.transform
获取函数
transformFunc:(rdd[T])⇒ RDD[U]
在这种情况下,
if
必须在条件的两次评估中产生相同的类型,但情况并非如此:

if (count == 0) => RDD[String]
if (count > 0) => RDD[AlertMsg]
在这种情况下,删除
if rdd.count…
的优化,这样您就有了唯一的转换路径

if (count == 0) => RDD[String]
if (count > 0) => RDD[AlertMsg]