小编drs*_*ein的帖子

仅使用SPARQL对一个值进行DISTINCT

我想用SPARQL检索人口超过10万的意大利城市列表,我正在使用以下查询:

PREFIX dbo: <http://dbpedia.org/ontology/> 
SELECT ?city ?name ?pop WHERE { 
    ?city a dbo:Settlement .
    ?city foaf:name ?name .
    ?city dbo:populationTotal ?pop .
    ?city dbo:country ?country .
    ?city dbo:country dbpedia:Italy .
  FILTER (?pop > 100000) 
}
Run Code Online (Sandbox Code Playgroud)

在结果中,我得到两个不同的行(代表相同的实体,但名称不同):

http://dbpedia.org/resource/Bologna "博洛尼亚"@ 384038

http://dbpedia.org/resource/Bologna"Comune di Bologna"@ 384038

如何SELECT DISTINCT仅在列中使用?city但仍然具有外部列的输出?

rdf sparql dbpedia linked-data

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

ZCA Whitening with opencv和java

我正在尝试实现如下所示的ZCA Whitening算法:如何实现ZCA Whitening?在Scala中使用opencv的Python(使用Java api)但是我找不到那里使用的大部分函数(phython with numpy).

到目前为止,我试过这个:

正在加载图像:

val input = Imgcodecs.imread(img)
Imgproc.cvtColor(input, input, Imgproc.COLOR_BGR2GRAY)
input.convertTo(input, CvType.CV_64FC1)
Run Code Online (Sandbox Code Playgroud)

然后应用算法:

//Covariance matrix
val covar, mean = new Mat()
Core.calcCovarMatrix(input, covar, mean, Core.COVAR_NORMAL | Core.COVAR_ROWS) 
Core.divide(covar, new Scalar(input.rows - 1), covar)

//Singular Value Decomposition
val w, u, vt = new Mat()
Core.SVDecomp(covar, w, u, vt, Core.SVD_FULL_UV)

//#Whitening constant, it prevents division by zero
val  epsilon = 1e-5
Run Code Online (Sandbox Code Playgroud)

实施最后的转型

ZCAMatrix = np.dot(U, np.dot(np.diag(1.0/np.sqrt(S + epsilon)), U.T))
Run Code Online (Sandbox Code Playgroud)

我尝试过:

var ZCAMatrix = …
Run Code Online (Sandbox Code Playgroud)

java opencv scala image-processing

10
推荐指数
0
解决办法
1123
查看次数

在火花流式上下文中将RDD写入HDFS

我有一个Spark 1.2.0火花流环境,我从本地文件夹中检索数据,每当我发现一个新文件添加到文件夹时,我执行一些转换.

val ssc = new StreamingContext(sc, Seconds(10))
val data = ssc.textFileStream(directory)
Run Code Online (Sandbox Code Playgroud)

为了对DStream数据执行分析,我必须将其转换为数组

var arr = new ArrayBuffer[String]();
   data.foreachRDD {
   arr ++= _.collect()
}
Run Code Online (Sandbox Code Playgroud)

然后我使用获得的数据来提取我想要的信息并将它们保存在HDFS上.

val myRDD  = sc.parallelize(arr)
myRDD.saveAsTextFile("hdfs directory....")
Run Code Online (Sandbox Code Playgroud)

由于我真的需要用数据来操作数据,所以不可能在HDFS上保存数据DStream.saveAsTextFiles("...")(这可以正常工作)而且我必须保存RDD但是这个预处理后我终于有了名为part-00000等的空输出文件......

通过arr.foreach(println)我能够看到转换的正确结果.

我的怀疑是,spark会尝试在每个批处理中将数据写入相同的文件,删除以前写的内容.我试图保存在动态命名文件夹中,myRDD.saveAsTextFile("folder" + System.currentTimeMillis().toString())但始终只创建一个folds并且输出文件仍为空.

如何在Spark-streaming上下文中将RDD写入HDFS?

hadoop scala hdfs apache-spark spark-streaming

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

适用于Android的Utf-8编码

我有utf-8编码的问题.

我从带有Java的UTF-8(带有很多中文符号)格式的MySQL数据库数据中检索并将它们放在一些txt文件上:(这是一个例子..我有很多数据)

String name = null;
ResultSet res = stat.executeQuery("Some_SQL");
nomeImg = res.getString("value");

PrintWriter = new new PrintWriter(new FileOutputStream("file_name.txt"));
out.println(name);
Run Code Online (Sandbox Code Playgroud)

使用这些txt文件,我将创建一些TextView,我用它来填充我的Android应用程序上的一些活动但是,并非所有符号都正确显示:大多数是正确的,但有些是无法识别的,并显示为黑色里面有白色问号的钻石.

我也试过这个:但是我得到了最糟糕的结果

byte[] name = null;
ResultSet res = stat.executeQuery("Some_SQL");
nomeImg = res.getString("value").getBytes("UTF-8"):

BufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("file_name.txt"), "UTF-8"));
out.write(new String(name, "UTF-8")+"\n");
Run Code Online (Sandbox Code Playgroud)

有谁有想法吗?谢谢!

编辑 我连接到我的数据库:

Connection con = DriverManager.getConnection("jdbc:mysql://url:port?useUnicode=true&characterEncoding=utf-8", user, pass);
Run Code Online (Sandbox Code Playgroud)

当我在DB上执行查询时:

SELECT default_character_set_name 
FROM information_schema.SCHEMATA S 
WHERE schema_name = "schema_name";
Run Code Online (Sandbox Code Playgroud)

我得到了结果

utf8
Run Code Online (Sandbox Code Playgroud)

所以我认为DB是用UTF-8编码的,我与它的连接可以处理UTF-8

java encoding android utf-8

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