小编mad*_*die的帖子

SparkContext和StreamingContext可以在同一个程序中共存吗?

我正在尝试设置一个Sparkstreaming代码,该代码从Kafka服务器读取行,但使用在另一个本地文件中编写的规则来处理它.我正在为流数据创建streamingContext,并为其他应用所有其他spark功能的sparkContext创建 - 比如字符串操作,读取本地文件等

val sparkConf = new SparkConf().setMaster("local[*]").setAppName("ReadLine")
val ssc = new StreamingContext(sparkConf, Seconds(15))
ssc.checkpoint("checkpoint")

    val topicMap = topics.split(",").map((_, numThreads.toInt)).toMap
    val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicMap).map(_._2)
    val sentence = lines.toString

    val conf = new SparkConf().setAppName("Bi Gram").setMaster("local[2]")
    val sc = new SparkContext(conf)
    val stringRDD = sc.parallelize(Array(sentence))
Run Code Online (Sandbox Code Playgroud)

但这会引发以下错误

Exception in thread "main" org.apache.spark.SparkException: Only one SparkContext may be running in this JVM (see SPARK-2243). To ignore this error, set spark.driver.allowMultipleContexts = true. The currently running SparkContext was created at:
org.apache.spark.SparkContext.<init>(SparkContext.scala:82)
org.apache.spark.streaming.StreamingContext$.createNewSparkContext(StreamingContext.scala:874) …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark spark-streaming

8
推荐指数
1
解决办法
4183
查看次数

CompletableFuture:异步调用void函数

我试图在某些数据库异常上使用重试策略实现数据库查询.重试策略的代码不是很相关,所以我没有包含它.正如您在下面的代码中看到的那样 - 我编写了一个retryCallable,它采用了重试策略和Callable populateData().

getDataFromDB,我从DB获取数据并将数据放在全局散列图中,该散列图在应用程序级别充当缓存.

此代码按预期工作.我想populateData从另一个班级调用.但是,这将是一个阻止呼叫.由于这是数据库并且具有重试策略,因此这可能很慢.我想populateData异步调用.

我如何使用CompletableFuture或FutureTask来实现这一目标? CompletableFuture.runAsync期待一个可运行的.CompletableFuture.supplyAsync期待供应商.我以前没有实现过这些东西.所以关于最佳实践的任何建议都会有所帮助.

Class TestCallableRetry {

public void populateData() {
        final Callable<Set<String>> retryCallable = new RetryingCallable<>(retryStrategyToRetryOnDBException(), getDataFromDB());
        Set<String> data = new HashSet<>();

        data = retryCallable.call();

        if (data != null && !data.isEmpty()) {
            // store data in a global hash map
        }
    }

    private Callable<Set<Building>> getDataFromDB() {
        return new Callable<Set<String>>() {
            @Override
            public Set<String> call() {
                // returns data from database
            }
        };
    }
}

Class …
Run Code Online (Sandbox Code Playgroud)

java callable runnable completable-future

5
推荐指数
1
解决办法
1707
查看次数

Ruby on Rails:尝试生成模型时出错:名称已在使用中

我是 Ruby on Rails 的新手。我正在尝试使用命令生成模型

rails 生成模型 电影标题:文本 年份:整数 评分:整数 描述:文本

但我收到错误:

 invoke  active_record The name 'Movie' is either already used in your application or reserved by Ruby on Rails. Please choose an alternative and run this generator again.
Run Code Online (Sandbox Code Playgroud)

我真的很想保留电影这个名字。我也尝试过以下删除表 - 但该表不存在于数据库中

sqlite> drop table Movie;
Error: no such table: Movie
Run Code Online (Sandbox Code Playgroud)

我不确定如何修复此错误或导致此错误的原因。对此的任何帮助都会很棒。提前致谢。

model ruby-on-rails

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

没有显卡的CUDA编程?有(好)模拟器吗?

在Windows7(64位)上是否有适用于CUDA的良好仿真器,这不会导致任何兼容性问题?

我还想知道安装模拟器的过程.

提前致谢.

cuda emulation windows-7

3
推荐指数
1
解决办法
2786
查看次数

Spark - Scala:处理一行后返回多个<key,value>

我有一个如下所示的数据集 -

0 - 1,2,4
1 - 0,4
2 - 0,4
4 - 2,1,0

我想读取每一行并将其转换为如下所示的内容

//对于0-1,2,4
(0,1)<2,4>
(0,2)<1,4>
(0,4)<1,2>行

//对于行1 - 0,4
(0,1)<4>
(1,4)<0>

//始终在对中首先出现较小的数字

即,读取" - "分隔符上分隔的每一行.所以我从数据集的第1行得到0和1,2,4.在那之后,我想要创建对.例如,(0,1)将是转换后的地图的关键,其值应为2,4.

完成后,我希望能够按键对值进行分组

例如(0,1)<2,4> <4>

并将它们相交以得到4.

可以这样做吗?我的做法是对的吗?

我到目前为止编写了以下代码 -

var mapOperation = logData.map(x=>x.split("\t")).filter(x => x.length == 2).map(x => (x(0),x(1)))
// reading file and creating the map Example - key 0 value 1,2,4

//from the first map, trying to create pairs
var mapAgainstValue = mapOperation.map{
line =>
val fromFriend = line._1
val toFriendsList = line._2.split(",") …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark

3
推荐指数
1
解决办法
1640
查看次数

Spark数据集:数据转换

我有一个格式为的 Spark 数据集 -

+--------------+--------+-----+
|name          |type    |cost |
+--------------+--------+-----+
|AAAAAAAAAAAAAA|XXXXX   |0.24|
|AAAAAAAAAAAAAA|YYYYY   |1.14|
|BBBBBBBBBBBBBB|XXXXX   |0.78|
|BBBBBBBBBBBBBB|YYYYY   |2.67|
|BBBBBBBBBBBBBB|ZZZZZ   |0.15|
|CCCCCCCCCCCCCC|XXXXX   |1.86|
|CCCCCCCCCCCCCC|YYYYY   |1.50|
|CCCCCCCCCCCCCC|ZZZZZ   |1.00|
+--------------+--------+----+
Run Code Online (Sandbox Code Playgroud)

我想将其转换为类型的对象 -

public class CostPerName {
    private String name;
    private Map<String, Double> costTypeMap;
}

Run Code Online (Sandbox Code Playgroud)

我想要的是,

+--------------+-----------------------------------------------+
|name          |           typeCost.                           |
+--------------+-----------------------------------------------+
|AAAAAAAAAAAAAA|(XXXXX, 0.24), (YYYYY, 1.14)                   |            
|BBBBBBBBBBBBBB|(XXXXX, 0.78), (YYYYY, 2.67), (ZZZZZ, 0.15)    |
|CCCCCCCCCCCCCC|(XXXXX, 1.86), (YYYYY, 1.50), (ZZZZZ, 1.00)    |
+--------------+-----------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

即,对于每个name,我想要一张 的地图(type, cost)

实现这一转变的有效途径是什么?我可以使用一些数据帧转换吗?我尝试了 groupBy 但只有在执行 sum、avg 等聚合查询时才有效。

apache-spark apache-spark-sql apache-spark-dataset

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

从CLI在Bluemix上安装Etherpad时出错

我正在尝试使用命令行界面在Bluemix上部署Etherpad版本1.5.7(https://github.com/cloudfoundry/cli/releases),按照此处的指南 - https://www.ng.bluemix.net/文档/起动/ install_cli.html

我收到附加错误在此输入图像描述

执行命令时出现此错误 - cf push appname https://github.com/cloundfoundry/node.js-buildpack.git

有关如何解决此错误的任何帮助都会有所帮助.TIA.

node.js etherpad ibm-cloud

0
推荐指数
1
解决办法
192
查看次数