我在ec2实例上部署了一个小的Web应用程序,我想测试它而不公开它.
使用弹性IP并不能解决我的问题,因为IP会将其暴露给外部世界,我们还没有为此做好准备.
我知道亚马逊VPC,但它似乎有点矫枉过正,因为我不需要所有这些功能,我不想处理设置.我所需要的只是通过使用私有IP或类似的东西来访问网络服务器.
对此有一个快速而肮脏的解决方案吗?
如何从训练有素的Spark MLlib StringIndexerModel中获取映射?
val stringIndexer = new StringIndexer()
.setInputCol("myCol")
.setOutputCol("myColIdx")
val stringIndexerModel = stringIndexer.fit(data)
val res = stringIndexerModel.transform(data)
Run Code Online (Sandbox Code Playgroud)
上面的代码将根据值的频率myColIdx向我的DataFrame映射值添加一个myCol索引。例如,最频繁的值-> 0,第二个最频繁的-> 1,依此类推...
如何从模型中检索该映射?如果我对模型进行序列化/反序列化,映射是否将是稳定的(即,在转换后是否可以保证获得相同的结果)?
Spark MLlib中的HashingTF中的numFeatures与文档(句子)中的实际术语数之间是否存在任何关系?
List<Row> data = Arrays.asList(
RowFactory.create(0.0, "Hi I heard about Spark"),
RowFactory.create(0.0, "I wish Java could use case classes"),
RowFactory.create(1.0, "Logistic regression models are neat")
);
StructType schema = new StructType(new StructField[]{
new StructField("label", DataTypes.DoubleType, false, Metadata.empty()),
new StructField("sentence", DataTypes.StringType, false, Metadata.empty())
});
Dataset<Row> sentenceData = spark.createDataFrame(data, schema);
Tokenizer tokenizer = new Tokenizer().setInputCol("sentence").setOutputCol("words");
Dataset<Row> wordsData = tokenizer.transform(sentenceData);
int numFeatures = 20;
HashingTF hashingTF = new HashingTF()
.setInputCol("words")
.setOutputCol("rawFeatures")
.setNumFeatures(numFeatures);
Dataset<Row> featurizedData = hashingTF.transform(wordsData);
Run Code Online (Sandbox Code Playgroud)
如Spark Mllib文档中所述,HashingTF将每个句子转换为长度为numFeatures的特征向量。如果此处的每个文档(句子中包含成千上万个术语)会发生什么情况?numFeatures的值应该是多少?如何计算该值?
我在 HDFS 中有以下数据(2 个文件):
/a
/b
/c
/f1.txt
/f2.txt
Run Code Online (Sandbox Code Playgroud)
我想将f1.txt和f2.txt的权限更改为644:例如hadoop fs -chmod 644 /a/b/c/*.txt
但是,为了真正授予对这些文件的访问权限,我需要将/b和:的权限更改/c为包含这些文件的目录。注意:我不拥有它,并且它已经是世界可读的。755+x/a
有没有hadoop fs命令让我这样做?Java/Scala 代码怎么样?
我从spark-nlpGitGub页面下载了一个.zip包含预训练 NerCRFModel的文件。zip 包含三个文件夹:embeddings、fields 和 metadata。
我如何将它加载到 Scala 中NerCrfModel以便我可以使用它?我是否必须将其放入 HDFS 或启动 Spark Shell 的主机中?我如何引用它?
nlp scala apache-spark apache-spark-mllib johnsnowlabs-spark-nlp
我是Spring,Lift和Scala的新手,我不明白为什么会有这么多技术争吵.我发现很多人在不同的论坛上比较和争夺两种编程语言和两种框架.除了Java/Lift语言的差异,为什么还有这么多关于Spring vs Lift的讨论?
这两个框架在概念上是不是分开了?
当然,Lift重叠并与Spring的MVC模块竞争前端开发,但Spring不会做更多的事情吗?
此外,如果有人更喜欢使用Lift构建Web应用程序,是不是可以将Lift与现有的Spring基础架构相结合/集成,并且将Java,Scala,Spring和Lift的环境结合在一起?
我有一个集合,我想产生一些线程来对它的元素做一些繁重的工作.集合的每个元素必须只处理一次.我希望尽可能减少同步,我想出了以下代码:
//getting the iterator is actually more complicated in my specific case
final Iterator it = myCollection.terator();
Thread[] threads = new Thread[numThreads];
for( int i = 0; i < numThreads; i++ ) {
threads[i] = new Thread(new Runnable() {
public void run() {
Object obj = null;
while(true) {
synchronized (it) {
if(it.hasNext())
obj = it.next();
else
return;
}
//Do stuff with obj
}
}
});
threads[i].start();
}
for (Thread t : threads)
try {
t.join();
} catch (InterruptedException e) …Run Code Online (Sandbox Code Playgroud) 我在一Red Hat Enterprise Linux Client release 5.4 (Tikanga)台机器上
我创建了/etc/yum.repos.d/10gen.repo这样的:
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1
Run Code Online (Sandbox Code Playgroud)
我安装了MongoDB: sudo yum install mongo-10gen mongo-10gen-server
但是当我跑步时: sudo service mongod start
我明白了: Missing SERVICE_URI environment variable
救命!:)
我被建议调查DynamoDB以存储时间序列数据,但鉴于我的最终目标是数据可视化,我不太确定.
我有传感器每10分钟发送一次数据,我想在一些图表中可视化数据,默认情况下每周查看一次(每周1008个数据点(日期时间/值)).假设我提供10,000次读取/秒(AWS'默认'最大值),并假设1条记录将适合1个容量单位(1kb).
除了东西越来越贵,这是否意味着我甚至不能同时只支持10个客户?我错了还是DynamoDB不适合这份工作?
java data-visualization time-series amazon-web-services amazon-dynamodb
如何确定JVM堆大小的默认值?
请注意,在运行我的应用程序之前/期间,我对设置或修改其初始,最小或最大大小不感兴趣.如果我什么都不做的话,我只想知道给定机器上的是什么!
我终于决定继续学习C++,并在一本增加数组大小的书中遇到了下面的代码.该函数采用指向具有原始大小的数组的指针,并返回一个大小为double的新数组.
int *doubleArraySize(int *p_array, int *p_size) {
*p_size *= 2;
int *p_new_array = new int[*p_size];
for(int i = 0; i < *p_size; i++)
p_new_array[i] = p_array[i];
delete[] p_array;
return p_new_array;
}
Run Code Online (Sandbox Code Playgroud)
当我们到达for循环时,值*p_size已经加倍.这意味着(至少对我而言)当我们访问时,p_array[i]我们最终会进入不属于的内存区域p_array.这是一个问题吗?这个代码可以崩溃吗?如果没有,我错过了什么?
给出以下代码:
dataFrame
.withColumn("A", myUdf1($"x")) // withColumn1 from x
.withColumn("B", myUdf2($"y")) // withColumn2 from y
Run Code Online (Sandbox Code Playgroud)
是否保证withColumn1会在之前执行withColumn2?
一个更好的例子:
dataFrame
.withColumn("A", myUdf1($"x")) // withColumn1 from x
.withColumn("B", myUdf2($"A")) // withColumn2 from A!!
Run Code Online (Sandbox Code Playgroud)
请注意,withColumn2 A是根据计算得出的withColumn1.
我问,因为我在同一代码的多次运行中得到了不一致的结果,我开始认为这可能是问题的根源.
编辑:添加了更详细的代码示例
val result = dataFrame
.groupBy("key")
.agg(
collect_list($"itemList").as("A"), // all items
collect_list(when($"click".isNotNull, $"itemList")).as("B") // subset of A
)
// create sparse item vector from all list of items A
.withColumn("vectorA", aggToSparseUdf($"A"))
// create sparse item vector from all list of items …Run Code Online (Sandbox Code Playgroud) 可能重复:
Scala运算符奇怪
我对Scala很新,我读到用这种语言,一切都是对象,很酷.另外,如果一个方法只有一个参数,那么我们可以省略'.' 和parentesis'()',没关系.
所以,如果我们采用以下Scala示例:3 + 2'3'和'2'是两个Int对象而'+'是一个方法,听起来不错.然后3 + 2只是简写3.+(2),这看起来很奇怪,但我仍然得到它.
现在让我们比较下面的代码块REPL:
scala> 3 + 2
res0: Int = 5
scala> 3.+(2)
res1: Double = 5.0
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?为什么显式语法返回一段Double时间,速记返回Int?
scala ×6
java ×5
apache-spark ×4
amazon-ec2 ×1
arrays ×1
c++ ×1
dataframe ×1
hadoop ×1
hadoop2 ×1
hdfs ×1
heap-memory ×1
heap-size ×1
ip-address ×1
iterator ×1
jvm ×1
lift ×1
memory-leaks ×1
mongodb ×1
nlp ×1
operators ×1
redhat ×1
spring ×1
spring-mvc ×1
tf-idf ×1
time-series ×1
vpn ×1