我有一个问题是在文件夹中解析1000个文本文件(每个文件大约3000行,大小约400KB).我确实用readlines读过它们,
for filename in os.listdir (input_dir) :
if filename.endswith(".gz"):
f = gzip.open(file, 'rb')
else:
f = open(file, 'rb')
file_content = f.readlines()
f.close()
len_file = len(file_content)
while i < len_file:
line = file_content[i].split(delimiter)
... my logic ...
i += 1
Run Code Online (Sandbox Code Playgroud)
这对我输入的样本(50,100个文件)完全没问题.当我在整个输入上运行超过5K的文件时,所花费的时间远不及线性增量.我计划进行性能分析并进行Cprofile分析.当输入达到7K文件时,更多文件以指数方式增加并且达到更差的速率所花费的时间.
这是readlines的累计时间,第一个 - > 354个文件(来自输入的样本)和第二个 - > 7473个文件(整个输入)
ncalls tottime percall cumtime percall filename:lineno(function)
354 0.192 0.001 **0.192** 0.001 {method 'readlines' of 'file' objects}
7473 1329.380 0.178 **1329.380** 0.178 {method 'readlines' of 'file' objects}
Run Code Online (Sandbox Code Playgroud)
因此,我的代码所花费的时间不会随着输入的增加而线性缩放.我阅读了一些文档说明readlines(),其中人们声称这readlines()会将整个文件内容读入内存,因此与readline()或相比通常消耗更多内存 …
我经常遇到这个问题,当我在查看/打印[df.head()]数据并在编写下一行代码之前查看或查看数据时,我正在切片或子集化.对于这种情况,每次,我都必须在ipython中运行整个块(单元格),即使我有一些逻辑写入,我必须对该块进行注释并单独执行我的打印行.
是否有一个功能,您可以选择一行并执行它.
我对Scala比较陌生.
如果我有这样的结构,
sampleFile.map(line => line.map {
var myObj = new MyClass(word);
myObj.func();
})
Run Code Online (Sandbox Code Playgroud)
我MyClass在类method(func())中创建了一个对象并做了一些事情.我对文件中的所有行重复此操作(直通map).所以,我在迭代的每一步创建一个对象(对于每一行).myObj当我开始下一次迭代时,它的范围是无效的(它们会在块的末尾被销毁,还是会在内存中被孤立?).我怀疑垃圾收集何时触发?此外,在迭代的每一步创建一个对象是否昂贵?当线路数量增加到100万时,这是否有任何性能影响?
问题描述: 我正在使用高度敏感的数据集,其中包含人员的电话号码信息作为其中一列.我需要应用(加密/散列函数)将它们转换为某些编码值并进行分析.它可以是单向散列 - 即,在使用加密数据处理后,我们不会将它们转换回原始电话号码.基本上,我正在寻找一个匿名者,它接收电话号码并将它们转换为一些随机值,我可以在其上进行处理.建议这个过程的最佳方法.欢迎使用有关最佳算法的建议.
更新:数据 集的大小我的数据集确实非常庞大,数百GB.
更新:敏感 敏感,我的意思是电话号码不应该是我们分析的一部分.所以,基本上我需要一个单向散列函数但没有冗余 - 每个电话号码应映射到唯一值 - 两个电话号码应该不映射到相同的值.
更新:实施?
感谢您的回答.我正在寻找精心实施.我正在通过python的hashlib库进行散列,它是否必须执行您建议的相同步骤?链接在这里
你能给我一些示例代码来实现这个过程,最好是在Python中吗?
我在伪分布式上运行Hadoop.我想通过为我的工作提取HDFS来从本地文件系统中读取和写入.我正在使用file:///参数.我按照这个链接.
这是文件内容core-site.xml,
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value> /home/abimanyu/temp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:54310</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是文件内容mapred-site.xml,
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:54311</value>
</property>
<property>
<name>fs.default.name</name>
<value>file:///</value>
</property>
<property>
<name>mapred.tasktracker.map.tasks.maximum</name>
<value>1</value>
</property>
<property>
<name>mapred.tasktracker.reduce.tasks.maximum</name>
<value>1</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是文件内容hdfs-site.xml,
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
这是我尝试启动恶魔时使用的错误(使用start-dfs或start-all),
localhost: Exception in thread "main" java.lang.IllegalArgumentException: Does not contain a valid host:port authority: file:///
localhost: at org.apache.hadoop.net.NetUtils.createSocketAddr(NetUtils.java:164)
localhost: at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:212)
localhost: at org.apache.hadoop.hdfs.server.namenode.NameNode.getAddress(NameNode.java:244)
localhost: at org.apache.hadoop.hdfs.server.namenode.NameNode.getServiceAddress(NameNode.java:236)
localhost: at org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode.initialize(SecondaryNameNode.java:194)
localhost: at …Run Code Online (Sandbox Code Playgroud) 我们在我们的盒子上安装了DataStax Cassandra社区服务器3.0.2,创建了几个键空间,我们将一些数据从旧数据库迁移到Cassandra(Aroudnd 10GB数据).虽然这就是我们materialized views在这些表上创建的迁移.在创建之后的几分钟(不确定到多长时间),我们获得了我们的服务(部署在2个数据中心架构中的~2x3节点上)随机停止,绝对没有关于它停止的原因的日志信息.之后我们尝试启动服务,我们的日志中出现以下错误
java.lang.RuntimeException: Cache schema version a2c390a1-f2cd-3d59-8b5c-a0a1d794d0fe does not match current schema version 8d1347d7-7729-3698-8537-4b91ae9ce7dd
at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:198) ~[apache-cassandra-3.0.2.jar:3.0.2]
at org.apache.cassandra.cache.AutoSavingCache$3.call(AutoSavingCache.java:157) [apache-cassandra-3.0.2.jar:3.0.2]
at org.apache.cassandra.cache.AutoSavingCache$3.call(AutoSavingCache.java:153) [apache-cassandra-3.0.2.jar:3.0.2]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_66]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_66]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_66]
Run Code Online (Sandbox Code Playgroud)
我们试图查看可能导致这种情况发生的代码.这给了我们一些关于它的原因的信息 - 显然服务试图将当前模式版本与缓存中存在的模式匹配(我会假设它在服务停止/创建物化视图之前)我们非常肯定我们没有除了创建物化视图之外,还可以对键空间进行任何架构更改.
那么是什么让我想知道过去没有人报告任何类型的问题?所以我们不确定自己出了什么问题.我们在cleanup节点上运行了nodetool 而没有任何帮助.我们不想丢失任何数据.我们正在尝试恢复,因此我们删除了$CASSANDRA_HOME\data\saved_caches文件夹并重新启动了服务.启动服务器时,它正在重播提交日志,这需要很长时间.我想这可能是由于我们拥有的数据量或机器完全消失而需要更换?
任何与该问题相关的指针可能都非常有用!先感谢您.
如果它可能有所帮助,我们在Windows机器上运行DataStax Cassandra Server并将Cassandra作为Windows服务运行.
我想创建一个大的 Jar 文件。为此,我尝试使用SBT ASSEMBLY。我从GitHub安装了 sbt-assemble和这个答案。当我运行时sbt assembly,我收到此错误:
java.lang.RuntimeException: deduplicate: different file contents found in the following:
/home/UserName/.ivy2/cache/org.eclipse.jetty.orbit/javax.servlet/orbits/javax.servlet-2.5.0.v201103041518.jar:javax/servlet/SingleThreadModel.class
/home/UserName/.ivy2/cache/org.mortbay.jetty/servlet-api/jars/servlet-api-2.5-20081211.jar:javax/servlet/SingleThreadModel.class
Run Code Online (Sandbox Code Playgroud)
为了解决这个问题,我遵循了用户的自述文件页面,这是他建议的代码。
mergeStrategy in assembly <<= (mergeStrategy in assembly) { (old) =>
{
case PathList("org", "apache", xs @ _*) => MergeStrategy.last
case PathList("javax", "servlet", xs @ _*) => MergeStrategy.last
case PathList("com", "esotericsoftware", xs @ _*) => MergeStrategy.last
case PathList("project.clj") => MergeStrategy.last
case PathList("overview.html") => MergeStrategy.last
case x => old(x)
}
}
Run Code Online (Sandbox Code Playgroud)
即使添加此代码后,我仍然收到前面提到的相同错误。请让我知道我缺少什么。对此错误的任何帮助将不胜感激。谢谢!
更新2:
根据给定的链接添加了排除规则,
libraryDependencies ++= …Run Code Online (Sandbox Code Playgroud) 转换它的最快方法是什么?
{"a":"ab","b":"cd","c":"cd","d":"de","e":"ef","f":"fg"}
scala中的可变映射?我从~500MB文件中读取了这个输入字符串.这就是我关注速度的原因.
scala集合中是否有函数可以查找列表中值的最大出现次数,
让我们说我有一个清单
L = List("A","B","B","E","B","E","B","B","C","E","B")
output: "B".
Run Code Online (Sandbox Code Playgroud)
我可以编写一个模块来计算这个,但我希望应该有一个scala"way"或scala集合函数来实现这一点.谢谢!
我在网上看到一段代码,声称调用这样的线程会导致非确定性输出"0223557799"或类似的东西.(你明白了)
for (int i = 0; i < 10; i++)
new Thread (() => Console.Write (i)).Start();
Run Code Online (Sandbox Code Playgroud)
这就是给出的理由:
"问题是i变量在整个循环的生命周期中引用相同的内存位置.因此,每个线程在一个变量上调用Console.Write,该变量的值可能在运行时发生变化!"
但是,传统上讲,当参数通过值传递时 - 每个新的Thread调用应该发送i增量顺序吗?只有当值通过引用传递时,上述原因才有效.那么,在C#多线程中,值是通过引用传递的吗?
我是C#的新手,请理解这个问题是否天真.
c# variables multithreading memory-management pass-by-reference
我们有一个3 DC(美国,欧盟,亚洲),每个都有3个节点,所以共有9个节点.我们正在进行实验,所以如果需要我们可以增加.
我们计划使用每DC 2的RF.在这种情况下,我们的法定人数达到2.
local_quorum我假设使用R/W一致性,我们可以容忍每个DC 1个节点的故障.只有当数据中心的第二个节点出现故障时,我们才会遇到麻烦.
但是这个计算器另有说明.在这里,如果我们选择3的簇大小和RF:2,WL/RL作为仲裁 - 它说我们可以在没有节点丢失的情况下存活.我遗漏了与仲裁规模和总数有关的事情.集群中的机器数量?
我有一个简单的 Jackson 解析器,它应该返回我的值,但我只得到null值。任何想法将不胜感激?
示例 Json 数据:
{"a":"ab","b":"cd","c":"cd","d":"de","e":"ef","f":"fg"}
Run Code Online (Sandbox Code Playgroud)
代码:
var jfactory = new JsonFactory()
var jParser : JsonParser = jfactory.createJsonParser(new File(outputDir + "/" + "myDic.json"))
while (jParser.nextToken() != JsonToken.END_OBJECT) {
var k = jParser.getCurrentName();
jParser.nextToken();
var v = jParser.getText();
println(k +"---" + v)
phoneDict.put(k,v);
i = i + 1;
println(phoneDict.size)
var t = readLine("Dict Done ?")
}
Run Code Online (Sandbox Code Playgroud)
输出:
null---null
1
Dict Done ?
null---null
1
Dict Done ?
null---null
1
Dict Done ?
null---null
1
Dict Done ?
Run Code Online (Sandbox Code Playgroud) 我是C#和Visual studio的新手.我在Visual Studio上有一个完美的C#项目代码.但是,我需要对数据库和代码进行一些更改.删除表A中的两列 - Col1,Col2,将它们添加到表B并相应地更改业务逻辑.我有一个.dbml文件,它定义了数据库表和代码之间的映射.在构建代码时,是否从.dbml文件自动生成designer.cs文件?如果不是,我该如何生成这些文件?如果我要删除表中的列 - 我需要更改哪些相应的文件(dbml/designer.cs)?这可能是天真的,但我不确定这些文件是如何连接到数据库的.
scala ×4
c# ×2
json ×2
jvm ×2
.net ×1
algorithm ×1
cassandra ×1
cryptography ×1
datastax ×1
encryption ×1
filesystems ×1
hadoop ×1
hdfs ×1
ipython ×1
jackson ×1
linq-to-sql ×1
map ×1
memory ×1
performance ×1
python ×1
python-2.6 ×1
readlines ×1
sbt ×1
sbt-assembly ×1
security ×1
sql-server ×1
streaming ×1
variables ×1
windows ×1