小编Exp*_*rer的帖子

如何将List(String,String)转换为ListMap [String,String]?

我有一个类型列表,List(String,String)我想将其转换为地图.当我使用toMap方法时,我发现它没有保留List中的数据顺序.但是我的目标是通过保持数据的顺序与List相同,将列表转换为Map.我学会了ListMap保留插入顺序(但它是不可变的)所以我可以使用带有map函数的LinkedHashMap顺序插入数据,LinkedHashMap但这意味着我需要遍历所有痛苦的元素.任何人都可以建议我一个更好的方法吗?谢谢

scala scala-collections

9
推荐指数
1
解决办法
1911
查看次数

如何配置Log4j以读取我的属性文件?

我正在使用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.

java log4j smslib

8
推荐指数
1
解决办法
3万
查看次数

如何在应用agg函数之前将十进制值限制为2位数?

我正在从堆栈溢出帖子中找到这个解决方案,我唯一的要求是如何在应用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版本.

scala apache-spark apache-spark-sql apache-spark-1.5

7
推荐指数
2
解决办法
1万
查看次数

如何在 Scala / Spark 中创建示例数据帧

我正在尝试创建一个简单的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编程方式创建示例?

scala apache-spark-sql

5
推荐指数
2
解决办法
1万
查看次数

Paperjs 0.9.25 - item.setRampPoint不是一个函数

我已经使用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)

如果我setRamPointpaperjs代码中注释掉它,它会再次开始工作.

当我尝试将SVG加载到页面时会发生这种情况,但是,正如我之前所说,它在很长一段时间内都运行正常.

我使用的是版本0.9.25 paperjs.

有任何想法吗?

javascript java svg paperjs

5
推荐指数
1
解决办法
554
查看次数

找不到 conda 信息。请验证您在 EMR 上的 conda 安装

我正在尝试在 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)

amazon-emr conda apache-zeppelin

5
推荐指数
1
解决办法
769
查看次数

如何为Hadoop生态系统配置主机文件

![在此处输入图像描述] [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

请建议

networking hadoop cloudera

4
推荐指数
2
解决办法
2万
查看次数

由于id没有更新,所以twitter4j

我正在尝试使用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)

twitter scala twitter4j

4
推荐指数
1
解决办法
717
查看次数

物化值是什么意思,为什么在同一图形的以下逻辑中它不同?

我是新手,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

akka-stream

3
推荐指数
1
解决办法
1586
查看次数

Gradle 构建失败“com.google.common.util.concurrent.ExecutionError:java.lang.NoClassDefFoundError:org/gradle/api/internal/java/JavaLibrary”

我刚刚将 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)

gradle maven gradlew build.gradle

3
推荐指数
1
解决办法
8161
查看次数