我想用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但仍然具有外部列的输出?
我正在尝试实现如下所示的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) 我有一个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?
我有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