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
Java中的Spark结构化流单元测试_Java_Apache Spark_Junit_Apache Kafka_Spark Structured Streaming - Fatal编程技术网

Java中的Spark结构化流单元测试

Java中的Spark结构化流单元测试,java,apache-spark,junit,apache-kafka,spark-structured-streaming,Java,Apache Spark,Junit,Apache Kafka,Spark Structured Streaming,我正在开发一个api,使用Spark结构化流技术从Kafka读取数据并写入Java中的blob存储。我找不到为此编写单元测试的方法。我有一个reader类返回一个数据集,还有一个writer类将数据集作为输入并以指定格式写入blob存储。我在MemoryStream上看到了一些博客,但我认为这还不够 提前感谢。显然,您可以参考这个答案,了解我们如何使用内存流进行单元测试- 另外,你可以看看霍尔顿·卡劳的火花测试基地 您可以模拟来自Kafka的流数据帧,并在该数据帧之上运行代码中的转换测试用例 样

我正在开发一个api,使用Spark结构化流技术从Kafka读取数据并写入Java中的blob存储。我找不到为此编写单元测试的方法。我有一个reader类返回一个数据集,还有一个writer类将数据集作为输入并以指定格式写入blob存储。我在MemoryStream上看到了一些博客,但我认为这还不够


提前感谢。

显然,您可以参考这个答案,了解我们如何使用内存流进行单元测试-

另外,你可以看看霍尔顿·卡劳的火花测试基地

您可以模拟来自Kafka的流数据帧,并在该数据帧之上运行代码中的转换测试用例

样本:

static Dataset<Row> createTestStreamingDataFrame() {
    MemoryStream<String> testStream= new MemoryStream<String>(100, sqlContext(), Encoders.STRING());
    testStream.addData((Arrays.asList("1,1","2,2","3,3")).toSeq());
    return testStream.toDF().selectExpr(
        "cast(split(value,'[,]')[0] as int) as testCol1",
        "cast(split(value,'[,]')[1] as int) as testCol2");
}

显然,您可以参考这个答案,了解如何使用内存流进行单元测试-

另外,你可以看看霍尔顿·卡劳的火花测试基地

您可以模拟来自Kafka的流数据帧,并在该数据帧之上运行代码中的转换测试用例

样本:

static Dataset<Row> createTestStreamingDataFrame() {
    MemoryStream<String> testStream= new MemoryStream<String>(100, sqlContext(), Encoders.STRING());
    testStream.addData((Arrays.asList("1,1","2,2","3,3")).toSeq());
    return testStream.toDF().selectExpr(
        "cast(split(value,'[,]')[0] as int) as testCol1",
        "cast(split(value,'[,]')[1] as int) as testCol2");
}

@mhlaskar1991-这澄清了你的疑问吗?!谢谢@act_coder@act_coderPySpark有什么解决方案吗?@mhlaskar1991-这澄清了你的疑问吗?!谢谢@act_coder@act_coderPySpark有什么解决方案吗?您需要更精确一点:您希望对代码的哪一部分进行单元测试?读卡夫卡,写blob存储,哪种类型?或者你可能要应用的某种中间转换?根据部件的不同,单元测试可能不同。对于输入卡夫卡和输出存储,您需要模拟外部系统进行测试。您需要更精确一点:您希望对代码的哪一部分进行单元测试?读卡夫卡,写blob存储,哪种类型?或者你可能要应用的某种中间转换?根据部件的不同,单元测试可能不同。对于输入卡夫卡和输出存储,您需要模拟外部系统进行测试