我有一个模型,图像存储为二进制blob.我想在模板中显示此图像以及有关该对象的其他数据.由于图像不是单独的文件,我无法弄清楚如何显示它.我已尝试设置标题,或使用send_file或render_template,但我要么不获取图像,要么只获取图像而不是模板的其余部分.如何在模板中将二进制blob显示为图像?
class A(ndb.Model):
id= ndb.IntegerProperty()
x= ndb.StringProperty()
y= ndb.StringProperty()
image = ndb.BlobProperty()
Run Code Online (Sandbox Code Playgroud) 在Java中,我有一个以某种方式处理文本文件的函数.但是,如果花费太多时间,该过程很可能对该文本文件无用(无论原因是什么),我想跳过它.此外,如果过程耗时太长,它也会占用太多内存.我试图用这种方式解决它,但它不起作用:
for (int i = 0; i<docs.size(); i++){
try{
docs.get(i).getAnaphora();
}
catch (Exception e){
System.err.println(e);
}
}
Run Code Online (Sandbox Code Playgroud)
where docs只是List目录中的一个文件.通常我必须手动停止代码,因为它"卡在"特定文件(取决于该文件的内容).
有没有办法测量该函数调用的时间,并告诉Java跳过该函数所需的文件,比如10秒?
编辑
在拼凑了几个不同的答案后,我想出了这个解决方案,它工作正常.也许其他人也可以使用这个想法.
首先创建一个实现Runable的类(这样你可以根据需要将参数传递给Thread):
public class CustomRunnable implements Runnable {
Object argument;
public CustomRunnable (Object argument){
this.argument = argument;
}
@Override
public void run() {
argument.doFunction();
}
}
Run Code Online (Sandbox Code Playgroud)
然后在main类中使用此代码来监视函数(argument.doFunction())的时间,如果需要很长时间则退出:
Thread thread;
for (int i = 0; i<someObjectList.size(); i++){
thread = new Thread(new CustomRunnable(someObjectList.get(i)));
thread.start();
long endTimeMillis = System.currentTimeMillis() + 20000;
while (thread.isAlive()) {
if …Run Code Online (Sandbox Code Playgroud) 我想从矩阵的每一行中得到一个不同的列.例如:
A = [1,2;1,4;5,2]
B = [2;2;1]
Run Code Online (Sandbox Code Playgroud)
输出应该产生:
out = [2;4;5]
Run Code Online (Sandbox Code Playgroud)
所以简而言之:A是矩阵,并且B每行的列数都有索引.如何在不使用循环的情况下执行此操作(如果可能)?
如果我有一些查询获取的对象列表(在这种情况下是Django模型).
friends = Friend.objects.friends(user1)
Run Code Online (Sandbox Code Playgroud)
如何获取ID列表,以便我可以使用它来搜索其他模型,如下所示:
items = Item.objects.get(pk__in=friends_ids).order_by('date')
Run Code Online (Sandbox Code Playgroud)
我很确定lambda表达式应该能够做到但我无法弄清楚...
我在Spark中有数据框.看起来像这样:
+-------+----------+-------+
| value| group| ts|
+-------+----------+-------+
| A| X| 1|
| B| X| 2|
| B| X| 3|
| D| X| 4|
| E| X| 5|
| A| Y| 1|
| C| Y| 2|
+-------+----------+-------+
Run Code Online (Sandbox Code Playgroud)
Endgoal:我想找到有多少序列A-B-E(一个序列只是后续行的列表).增加的约束条件是序列的后续部分可以n分开最大行.让我们考虑这个例子n是2.
考虑组X.在这种情况下,恰好有1 和D之间(忽略多个连续的s).这意味着并且相隔1行,因此存在序列BEBBEA-B-E
我曾考虑使用collect_list(),创建一个字符串(如DNA)和使用正则表达式的子字符串搜索.但我想知道是否有更优雅的分布式方式,也许使用窗口函数?
编辑:
请注意,提供的数据框只是一个示例.真实的数据帧(以及组)可以是任意长的.
我一直在尝试使用成人数据集在Spark和Scala中运行示例.
使用Scala 2.11.8和Spark 1.6.1.
问题(目前)在于该数据集中的分类特征量,在Spark ML算法完成其工作之前,所有分类特征都需要编码为数字.
到目前为止我有这个:
import org.apache.spark.ml.Pipeline
import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.ml.feature.OneHotEncoder
import org.apache.spark.sql.SQLContext
import org.apache.spark.{SparkConf, SparkContext}
object Adult {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("Adult example").setMaster("local[*]")
val sparkContext = new SparkContext(conf)
val sqlContext = new SQLContext(sparkContext)
val data = sqlContext.read
.format("com.databricks.spark.csv")
.option("header", "true") // Use first line of all files as header
.option("inferSchema", "true") // Automatically infer data types
.load("src/main/resources/adult.data")
val categoricals = data.dtypes filter (_._2 == "StringType")
val encoders = …Run Code Online (Sandbox Code Playgroud) scala apache-spark apache-spark-sql apache-spark-ml apache-spark-mllib
在RI中有一个spark连接,一个DataFrame为ddf。
library(sparklyr)
library(tidyverse)
sc <- spark_connect(master = "foo", version = "2.0.2")
ddf <- spark_read_parquet(sc, name='test', path="hdfs://localhost:9001/foo_parquet")
Run Code Online (Sandbox Code Playgroud)
由于行数不多,因此我想将其存储到内存中以应用一些机器学习魔术。但是,似乎无法收集某些行。
df <- ddf %>% head %>% collect # works fine
df <- ddf %>% collect # doesn't work
Run Code Online (Sandbox Code Playgroud)
第二行代码将引发Error in rawToChar(raw) : embedded nul in string:错误。失败的列/行具有一些字符串数据。由于head %>% collect工作表明某些行似乎失败,而其他行则按预期工作。
我如何解决此错误,有没有办法清除该错误?该错误实际上是什么意思?
我知道如何执行并行循环以joblib返回列表作为结果。
但是,是否可以并行填充预定义numpy矩阵?
想象一下以下最小示例矩阵和数据:
column_data = ['a', 'b', 'c', 'd', 'e', 'f', 'x']
data = [['a', 'b', 'c'],
['d', 'c'],
['e', 'f', 'd', 'x']]
x = np.zeros((len(data), len(column_data))
Run Code Online (Sandbox Code Playgroud)
请注意,它column_data是排序且唯一的。data是列表的列表,而不是矩形矩阵。
循环:
for row in range(len(data)):
for column in data[row]:
x[row][column_data.index(column)] = 1
Run Code Online (Sandbox Code Playgroud)
可以并行化这个循环吗?如果没有并行化,填充矩阵70,000 x 10,000会非常慢。
我有CSV由三列的事件日志timestamp,eventId和userId.
我想要做的是nextEventId在数据框中添加一个新列.
一个示例事件日志:
eventlog = sqlContext.createDataFrame(Array((20160101, 1, 0),(20160102,3,1),(20160201,4,1),(20160202, 2,0))).toDF("timestamp", "eventId", "userId")
eventlog.show(4)
|timestamp|eventId|userId|
+---------+-------+------+
| 20160101| 1| 0|
| 20160102| 3| 1|
| 20160201| 4| 1|
| 20160202| 2| 0|
+---------+-------+------+
Run Code Online (Sandbox Code Playgroud)
期望的结果将是:
|timestamp|eventId|userId|nextEventId|
+---------+-------+------+-----------+
| 20160101| 1| 0| 2|
| 20160102| 3| 1| 4|
| 20160201| 4| 1| Nil|
| 20160202| 2| 0| Nil|
+---------+-------+------+-----------+
Run Code Online (Sandbox Code Playgroud)
到目前为止,我一直在搞滑动窗口,但无法弄清楚如何比较2行......
val w = Window.partitionBy("userId").orderBy(asc("timestamp")) //should be a sliding window over 2 rows...
val nextNodes = second($"eventId").over(w) …Run Code Online (Sandbox Code Playgroud)