我试图使用本指南在EC2上使用Spark主机对常见爬网数据进行简单转换,我的代码如下所示:
package ccminer
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
object ccminer {
val english = "english|en|eng"
val spanish = "es|esp|spa|spanish|espanol"
val turkish = "turkish|tr|tur|turc"
val greek = "greek|el|ell"
val italian = "italian|it|ita|italien"
val all = (english :: spanish :: turkish :: greek :: italian :: Nil).mkString("|")
def langIndep(s: String) = s.toLowerCase().replaceAll(all, "*")
def main(args: Array[String]): Unit = {
if (args.length != 3) {
System.err.println("Bad command line")
System.exit(-1)
}
val cluster = "spark://???"
val sc = new SparkContext(cluster, "Common Crawl Miner", …
Run Code Online (Sandbox Code Playgroud) 以下查询计算商店中的所有三元组
SELECT count(*) where { ?s ?p <http://dbpedia.org/resource/Cat> }
Run Code Online (Sandbox Code Playgroud)
并返回预期的结果
但是,当我第一次尝试它时,我不小心留下了ORDER BY语句,例如,
select count(*) { ?s ?p <http://dbpedia.org/resource/Cat> } order by ?s
Run Code Online (Sandbox Code Playgroud)
然后我得到一个很长的结果列表
任何人都可以解释为什么会出现这种结果及其含义?它可能是Virtuoso SPARQL实现的错误吗?
我想派生一个Scala内置集合的版本,该集合扩展了特定泛型类型的功能,例如,
import scala.collection.immutable._
class Tuple2Set[T1,T2] extends HashSet[Tuple2[T1,T2]] {
def left = map ( _._1 )
def right = map ( _._2 )
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用它与以下测试
new Tuple2Set[String,String]() + (("x","y")) left
Run Code Online (Sandbox Code Playgroud)
我得到以下编译错误
error: value left is not a member of scala.collection.immutable.HashSet[(String, String)]
Run Code Online (Sandbox Code Playgroud)
如何更改课程以使其有效?
我试图在一个可以通过引用变异的特征中获得一个值.问题是String
值非常大,可能被许多线程访问,所以我的解决方案看起来像这样:
trait MyTrait {
fn name<'a>(&'a mut self) -> &'a mut String;
}
struct SimpleImpl {
name: String
}
impl MyTrait for SimpleImpl {
fn name<'a>(&'a mut self) -> &'a mut String {
&mut self.name
}
}
use std::sync::{Arc,RwLock};
struct ParallelImpl {
name: Arc<RwLock<String>>
}
impl MyTrait for ParallelImpl {
fn name<'a>(&'a mut self) -> &'a mut String {
self.name.get_mut().unwrap()
}
}
fn main() {
let mut a = SimpleImpl { name: String::from("simple") };
let mut b = …
Run Code Online (Sandbox Code Playgroud)