我在Spark文档中关注此示例,用于计算一堆文档的TF-IDF.Spark使用散列技巧进行此计算,所以最后你得到一个包含散列词和相应权重的Vector但是......我如何从散列中取回单词?
我是否真的需要哈希所有单词并将它们保存在地图中以便以后迭代查找关键字?内置Spark没有更有效的方法吗?
提前致谢
我正在使用spark-streaming阅读kafka流媒体消息.现在我想将Cassandra设置为输出.我在cassandra"test_table"中创建了一个表,其中列为"key:text primary key"和"value:text"我已成功将数据映射到JavaDStream<Tuple2<String,String>> data这样:
JavaSparkContext sc = new JavaSparkContext("local[4]", "SparkStream",conf);
JavaStreamingContext jssc = new JavaStreamingContext(sc, new Duration(3000));
JavaPairReceiverInputDStream<String, String> messages = KafkaUtils.createStream(jssc, args[0], args[1], topicMap );
JavaDStream<Tuple2<String,String>> data = messages.map(new Function< Tuple2<String,String>, Tuple2<String,String> >()
{
public Tuple2<String,String> call(Tuple2<String, String> message)
{
return new Tuple2<String,String>( message._1(), message._2() );
}
}
);
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个List:
List<TestTable> list = new ArrayList<TestTable>();
Run Code Online (Sandbox Code Playgroud)
其中TestTable是我的自定义类,具有与我的Cassandra表相同的结构,其成员为"key"和"value":
class TestTable
{
String key;
String val;
public TestTable() {}
public TestTable(String k, String v)
{
key=k;
val=v;
}
public String …Run Code Online (Sandbox Code Playgroud) 我有Java时间1380822000000.我想转换成我能读到的东西:
import java.util.Date
object Ws1 {
val a = new Date("1380822000000").toString()
}
Run Code Online (Sandbox Code Playgroud)
导致例外
warning: there were 1 deprecation warning(s); re-run with -deprecation for detai
ls
java.lang.IllegalArgumentException
at java.util.Date.parse(Date.java:615)
at java.util.Date.<init>(Date.java:272)
at .<init>(<console>:9)
at .<clinit>(<console>)
at .<init>(<console>:7)
at .<clinit>(<console>)
at $print(<console>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57
)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at scala.tools.nsc.interpreter.IMain$ReadEvalPrint.call(IMain.scala:734)
at scala.tools.nsc.interpreter.IMain$Request.loadAndRun(IMain.scala:983)
at scala.tools.nsc.interpreter.IMain.loadAndRunReq$1(IMain.scala:573)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:604)
at scala.tools.nsc.interpreter.IMain.interpret(IMain.scala:568)
at scala.tools.nsc.interpreter.ILoop.reallyInterpret$1(ILoop.scala:745)
at scala.tools.nsc.interpreter.ILoop.interpretStartingWith(ILoop.scala:790)
at scala.tools.nsc.interpreter.ILoop.command(ILoop.scala:702)
at scala.tools.nsc.interpreter.ILoop.processLine$1(ILoop.scala:566)
at scala.tools.nsc.interpreter.ILoop.innerLoop$1(ILoop.scala:573)
at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:576)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scal
a:867)
at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:822) …Run Code Online (Sandbox Code Playgroud) 我知道hadoop REST API可以通过程序访问作业状态。
同样,是否有任何方法可以在程序中获取火花作业状态?
abstract class Bhanu[-A] { val m:List[A] }
Run Code Online (Sandbox Code Playgroud)
给
error: contravariant type A occurs in covariant position in type => List[A] of value m
abstract class Bhanu[-A] { val m:List[A] }
Run Code Online (Sandbox Code Playgroud)
而
abstract class Bhanu[+A] { val m:List[A] }
Run Code Online (Sandbox Code Playgroud)
给
defined class Bhanu
Run Code Online (Sandbox Code Playgroud)
我无法绕过这个概念来解释为什么它会因为逆变而失败,而它却成功地进行了协方差.
其次(来自其他一些例子),
该陈述究竟意味着什么?
Function1[Sport,Int] <: Function1[Tennis,Int] since Tennis <: Sport
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎是违反直觉的,不应该是以下情况吗?
Function1[Tennis,Int] <: Function1[Sport,Int] since Tennis <: Sport
Run Code Online (Sandbox Code Playgroud) 我正在syntax error, 'unexpected ','使用Ruby程序.ruby intepreter和Ruby IDE(Eclipse DLTK)都指出了同一个地方的错误,但它对我来说看起来非常好.
main.rb:156: syntax error, unexpected ','
def create_account(atts={}, entity, server_app)
^ (SyntaxError)
Run Code Online (Sandbox Code Playgroud)
如果我注释掉或删除有问题的行(以及方法的其余部分),语法错误将移至下一个3参数方法定义(没有params,1或2-param方法不受影响)
我正在运行Jruby 1.6.7
我想这与完全不相关的东西有关,所以我正在寻找一些关于要寻找什么的提示/启发式方法.
----编辑----
进一步的实验表明,它与哈希的内联初始化的使用有关:
def dummy_two_param_method(dummy={}) #OK
end
def dummy_two_param_method(dummy, damn) #OK
end
def dummy_two_param_method(dummy={}, damn) #Syntax error at ')'
end
def dummy_three_param_method(dummy={}, damn, dum_b)
end
Run Code Online (Sandbox Code Playgroud) 我经常听到"对不可变数据的可变引用"这个术语.就我而言,这是针对Scala的.如果你有一个可变引用,这不意味着不可变数据是可变的吗?我很难理解它的理论和实践方面.例子很棒.
concurrency functional-programming scala mutable immutability
如何删除该选项以便它只是Try[Int]而不是Try[Option[Int]]?
val m = Map("a" -> "1a", "b" -> "2")
Try(m.get("a").map(_.trim.toInt))
>>es17: scala.util.Try[Option[Int]] = Failure(java.lang.NumberFormatException: For input string: "1a")
Run Code Online (Sandbox Code Playgroud) 当我在Spark Terminal上运行它时,下面的代码工作正常,但在eclipse中它会抛出错误.可能是什么原因.如果您需要更多信息,请与我们联系.
val IABLabels = IAB.zip(labels)
val temp1 = IABLabels.groupBy(x => x._2).mapValues(_. map(_._ 1))
Eclipse中的错误:
value mapValues不是org.apache.spark.rdd.RDD [(Int,Iterable [(String,Int)])]的成员
代码在Spark shell上运行得非常好.
如何在scala中编写这个数学函数?无法在scala中找到exp.
1 /(1 + EXP(3.4761-101.09*0.05-0.0440))
scala ×6
apache-spark ×4
java ×2
cassandra ×1
concurrency ×1
covariance ×1
eclipse ×1
hadoop ×1
hash ×1
immutability ×1
mutable ×1
ruby ×1
syntax-error ×1
tf-idf ×1