我有一个类型列表,List(String,String)我想将其转换为地图.当我使用toMap方法时,我发现它没有保留List中的数据顺序.但是我的目标是通过保持数据的顺序与List相同,将列表转换为Map.我学会了ListMap保留插入顺序(但它是不可变的)所以我可以使用带有map函数的LinkedHashMap顺序插入数据,LinkedHashMap但这意味着我需要遍历所有痛苦的元素.任何人都可以建议我一个更好的方法吗?谢谢
我正在使用SMSLibJava 发送短信.我已经加载了log4j jar文件并将文件放在log4j.properties正确的位置,但它仍然无法读取它并获得以下异常:
例外文字:
log4j:ERROR无法读取配置文件[log4j.properties].java.io.FileNotFoundException:log4j.properties(Lefichierspécifiéestintrouvable),java.io.FileInputStream.open(Native Method),位于java.io.FileInputStream.(FileInputStream.java:138),位于java.io.FileInputStream.( FileInputStream.java:97)org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:372)org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:403)org.smslib.helper.Logger.( Logger.java:50)atg.smslib.helper.Logger.(Logger.java:29)org.smslib.Service.listSystemInformation(Service.java:113)org.smslib.Service.initializeService(Service.java: 103)org.smslib.Service.(Service.java:95)ata.sposlib.Service.(Service.java:90)at laposte.EnvoiSMS.(EnvoiSMS.java:181)at laposte.login.passwordKeyPressed(login .java:230)在laposte.login.access $ 100(login.java:26)位于javax的java.awt.Component.processKeyEvent(Component.java:6463)的laposte.login $ 2.keyPressed(login.java:80) .swing.JComponent.processKeyEvent(JComponent.java:2829)在java.awt.Component.processEvent(Component.java:6282)的java.awt.Container.processEvent(Container.java:2229)中,java.awt.Component.dispatchEventImpl(Component.java:4861),位于java.awt. java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent上的java.awt.Component.redispatchEvent(KeyboardFocusManager.java:1895)中java.awt.Component.dispatchEvent(Component.java:4687)上的Container.dispatchEventImpl(Container.java:2287)(DefaultKeyboardFocusManager) .java:762)java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)在Java.awt.Component.dispatchEventImpl(Component.java:4731)的java.awt.Container.dispatchEventImpl(Container.java:2287)java.awt.Window.dispatchEventImpl(Window.java:2719)at java.awt. java.a上的Component.dispatchEvent(Component.java:4687)wt.EventQueue.dispatchEventImpl(EventQueue.java:729)java.awt.EventQueue.access $ 200(EventQueue.java:103)java.awt.EventQueue $ 3.run(EventQueue.java:688)at java.awt.EventQueue在java.security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)java.security.Protevilege(ProtectionDomain.java:76)java.security.AccessController.doPrivileged(Native Method)$ 3.run(EventQueue.java:686)$ 1.doIntersectionPrivilege(ProtectionDomain. java:87)at java.awt.EventQueue $ 4.run(EventQueue.java:702)at java.awt.EventQueue $ 4.run(EventQueue.java:700)at java.security.AccessController.doPrivileged(Native Method)at java .security.ProtectionDomain $ 1.doIntersectionPrivilege(ProtectionDomain.java:76)位于java.awt.EventDispatchThread上的java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)java.awt.EventQueue.dispatchEvent(EventQueue.java:699) .pumpEventsForFilter(EventDispatchThread.java:161)at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)log4j:ERROR忽略配置file [log4j.properties].log4j:WARN找不到logger(smslib)的appender.log4j:WARN请正确初始化log4j系统.log4j:WARN有关详细信息,请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig.
我正在从堆栈溢出帖子中找到这个解决方案,我唯一的要求是如何在应用df.agg(sum())函数之前将我想要求和的值限制为小数点后的2位数?
例如:我有如下的值,sum函数对它进行求和,
2.346
1.549
Run Code Online (Sandbox Code Playgroud)
但是我希望将值舍入为小数点后的2位数
2.35
1.55
Run Code Online (Sandbox Code Playgroud)
在总结之前.我该怎么做?我无法找到任何功能的子sum().round功能sum.
注意:我使用的是Spark 1.5.1版本.
我正在尝试创建一个简单的DataFrame如下:
import sqlContext.implicits._
val lookup = Array("one", "two", "three", "four", "five")
val theRow = Array("1",Array(1,2,3), Array(0.1,0.4,0.5))
val theRdd = sc.makeRDD(theRow)
case class X(id: String, indices: Array[Integer], weights: Array[Float] )
val df = theRdd.map{
case Array(s0,s1,s2) => X(s0.asInstanceOf[String],s1.asInstanceOf[Array[Integer]],s2.asInstanceOf[Array[Float]])
}.toDF()
df.show()
Run Code Online (Sandbox Code Playgroud)
df 定义为
df: org.apache.spark.sql.DataFrame = [id: string, indices: array<int>, weights: array<float>]
Run Code Online (Sandbox Code Playgroud)
这就是我想要的。
执行后,我得到
org.apache.spark.SparkException:作业因阶段失败而中止:阶段 13.0 中的任务 1 失败 1 次,最近一次失败:阶段 13.0 中丢失任务 1.0(TID 50,本地主机):scala.MatchError:1(属于 java 类) .lang.String)
这个 MatchError 是从哪里来的?并且,是否有更简单的方法来以DataFrames编程方式创建示例?
我已经使用paperjs了一年,没有任何问题.在Chrome更新后(Version 55.0.2883.87 m),我在2个月内未触及的一些生产代码开始失败error: item.setRampPoint is not a function:
paper-full.js:13213 Uncaught TypeError: item.setRampPoint is not a function
at offset (paper-full.js:13213)
at Object.<anonymous> (paper-full.js:13263)
at Object.forIn (paper-full.js:46)
at Function.each (paper-full.js:133)
at applyAttributes (paper-full.js:13260)
at importGroup (paper-full.js:12944)
at importSVG (paper-full.js:13324)
at Project.importSVG (paper-full.js:13356)
at drawAddLaneButtons (tlc.js:267)
at Path.window.drawTlcElements (tlc.js:62)
Run Code Online (Sandbox Code Playgroud)
如果我setRamPoint在paperjs代码中注释掉它,它会再次开始工作.
当我尝试将SVG加载到页面时会发生这种情况,但是,正如我之前所说,它在很长一段时间内都运行正常.
我使用的是版本0.9.25 paperjs.
有任何想法吗?
我正在尝试在 EMR 上安装 conda,下面是我的引导脚本,看起来 conda 已安装,但未添加到环境变量中。当我手动更新$PATHEMR 主节点上的变量时,它可以识别conda. 我想在 Zeppelin 上使用 conda。
我还尝试在启动 EMR 实例时将 condig 添加到配置中,如下所示,但我仍然收到下面提到的错误。
"classification": "spark-env",
"properties": {
"conda": "/home/hadoop/conda/bin"
}
Run Code Online (Sandbox Code Playgroud)
[hadoop@ip-172-30-5-150 ~]$ PATH=/home/hadoop/conda/bin:$PATH
[hadoop@ip-172-30-5-150 ~]$ conda
usage: conda [-h] [-V] command ...
conda is a tool for managing and deploying applications, environments and packages.
Run Code Online (Sandbox Code Playgroud)
#!/usr/bin/env bash
# Install conda
wget https://repo.continuum.io/miniconda/Miniconda3-4.2.12-Linux-x86_64.sh -O /home/hadoop/miniconda.sh \
&& /bin/bash ~/miniconda.sh -b -p $HOME/conda
conda config --set always_yes yes --set changeps1 no
conda install conda=4.2.13
conda config …Run Code Online (Sandbox Code Playgroud) ![在此处输入图像描述] [1]这个问题可能看起来非常明显,但由于hadoop集群上主机文件的配置错误,我已经多次遇到过这个问题.
任何人都可以描述如何为hadoop和类似的环境使用设置主机文件和其他相关的网络配置(如cloudera).
特别是当我必须添加主机名和FQDN时
更新
这是主机名为cdh4hdm的机器之一的主机文件,具有hadoop Master的作用
127.0.0.1 cdh4hdm localhost
#127.0.1.1 cdh4hdm
# The following lines are desirable for IPv6 capable hosts
172.26.43.40 cdh4hdm.imp.co.in kdc1
172.26.43.41 cdh4hbm.imp.co.in
172.26.43.42 cdh4s1.imp.co.in
172.26.43.43 cdh4s2.imp.co.in
172.26.43.44 cdh4s3.imp.co.in
172.26.43.45 cdh4s4.imp.co.in
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Run Code Online (Sandbox Code Playgroud)
请参阅附图
在集群中,一些节点正在获取FQDN,一些节点正在获取主机名.
主机名IP也不正确,显示127.0.0.1而不是主机IP
请建议
我正在尝试使用since_id通过Twitter搜索api获取推文。下面是我的代码,在这里我正在创建一个查询对象的地图,因为ID。我默认将since ID设置为0,而我的目标是每次运行查询时都要更新since ID。这样,当我下次运行查询时,它不会得到相同的推文,而应从上一条推文开始。
import java.io.{PrintWriter, StringWriter}
import java.util.Properties
import com.google.common.io.Resources
import twitter4j._
import scala.collection.JavaConversions._
// reference: http://bcomposes.com/2013/02/09/using-twitter4j-with-scala-to-access-streaming-tweets/
object Util {
val props = Resources.getResource("twitter4j.props").openStream()
val properties = new Properties()
properties.load(props)
val config = new twitter4j.conf.ConfigurationBuilder()
.setDebugEnabled(properties.getProperty("debug").toBoolean)
.setOAuthConsumerKey(properties.getProperty("consumerKey"))
.setOAuthConsumerSecret(properties.getProperty("consumerSecret"))
.setOAuthAccessToken(properties.getProperty("accessToken"))
.setOAuthAccessTokenSecret(properties.getProperty("accessTokenSecret"))
val tempKeys =List("Yahoo","Bloomberg","Messi", "JPM Chase","Facebook")
val sinceIDmap : scala.collection.mutable.Map[String, Long] = collection.mutable.Map(tempKeys map { ix => s"$ix" -> 0.toLong } : _*)
//val tweetsMap: scala.collection.mutable.Map[String, String]
val configBuild = (config.build())
val MAX_TWEET=100
getTweets()
def getTweets(): Unit ={
sinceIDmap.keys.foreach((TickerId) => getTweets(TickerId)) …Run Code Online (Sandbox Code Playgroud) 我是新手,Akka Stream从上周开始才开始阅读其文档。我能够理解大多数概念,但是我发现很难理解Materialized ValueAkka流中的含义及其含义是什么?
如果有人可以用一个真实的例子向我解释这一点,那么它将有助于在Akka Stream中将它与它的用例进行关联。
更新资料
我正在看下面的示例,想了解我们为同一张图获得的两种不同类型的输出。我知道它与有着直接的关系,Materialized Value这就是为什么我问上述问题。
implicit val system = ActorSystem("PlainSinkProducerMain")
implicit val materializer = ActorMaterializer()
val source = Source(1 to 10)
val sink = Sink.fold[Int, Int](0)(_ + _)
val runnable: RunnableGraph[Future[Int]] =
source.toMat(sink)(Keep.right)
val sum1: Future[Int] = runnable.run()
val sum2: Future[Int] = runnable.run()
println(sum1.value)
println(sum2.value)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到以下输出:
None
Some(Success(55))
Run Code Online (Sandbox Code Playgroud)
上面的例子来自docs,下面是它的解释。
由于可以多次实现一个流,因此对于每个这样的实现,也将重新计算实现值,通常会导致每次返回不同的值。在下面的示例中,我们创建了两个在runnable变量中描述的流的正在运行的实例化实例,并且即使我们使用相同的接收器来引用future,这两个实例化也为我们提供了与地图不同的Future。
我在这里有2个问题:1)为什么同一图的2个不同的实例化实例具有2个不同的输出值?尽管物化值是两次计算的,但在幕后两个计算都是针对同一图形的。
2)为什么对于成功执行和失败案例,返回类型Some(Success(55))不是普通类型?(这可能是愚蠢的问题,但我想了解这个特殊的返回值解决/提供了什么问题/优势。)55Failure Exception
我刚刚将 gradle 从 3.2.1 升级到 6.8.1,并继续出现以下错误,我检查了 gradle 版本输出,所有依赖项看起来都符合文档。以下是和文件build.gradle的输出。谢谢你的时间。gradle -versiongradle.properties
com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/gradle/api/internal/java/JavaLibrary
> java.lang.NoClassDefFoundError: org/gradle/api/internal/java/JavaLibrary
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
com.google.common.util.concurrent.ExecutionError: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/gradle/api/internal/java/JavaLibrary
at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2047)
at com.google.common.cache.LocalCache.get(LocalCache.java:3851)
at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3875)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4800)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.uncheckedGet(DefaultPluginRegistry.java:151)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.maybeInspect(DefaultPluginRegistry.java:102)
at org.gradle.api.internal.plugins.DefaultPluginRegistry.inspect(DefaultPluginRegistry.java:110)
at org.gradle.api.internal.plugins.DefaultPluginManager.addImperativePlugin(DefaultPluginManager.java:95)
at org.gradle.api.internal.plugins.DefaultPluginContainer.apply(DefaultPluginContainer.java:77)
at org.gradle.api.plugins.PluginContainer$apply.call(Unknown Source)
at com.github.jengelman.gradle.plugins.shadow.ShadowPlugin$_apply_closure1.doCall(ShadowPlugin.groovy:14)
at org.gradle.util.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:105)
at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:166)
at org.gradle.configuration.internal.DefaultUserCodeApplicationContext$CurrentApplication$1.execute(DefaultUserCodeApplicationContext.java:100)
at …Run Code Online (Sandbox Code Playgroud) scala ×4
java ×2
akka-stream ×1
amazon-emr ×1
apache-spark ×1
build.gradle ×1
cloudera ×1
conda ×1
gradle ×1
gradlew ×1
hadoop ×1
javascript ×1
log4j ×1
maven ×1
networking ×1
paperjs ×1
smslib ×1
svg ×1
twitter ×1
twitter4j ×1