小编KAs*_*KAs的帖子

在pyspark中的每个DataFrame组中检索前n个

pyspark中有一个DataFrame,数据如下:

user_id object_id score
user_1  object_1  3
user_1  object_1  1
user_1  object_2  2
user_2  object_1  5
user_2  object_2  2
user_2  object_2  6
Run Code Online (Sandbox Code Playgroud)

我期望在每个组中返回具有相同user_id的2条记录,这些记录需要具有最高分.因此,结果应如下所示:

user_id object_id score
user_1  object_1  3
user_1  object_2  2
user_2  object_2  6
user_2  object_1  5
Run Code Online (Sandbox Code Playgroud)

我是pyspark的新手,有人能给我一个代码片段或门户网站来解决这个问题的相关文档吗?十分感谢!

python dataframe apache-spark apache-spark-sql pyspark

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

如何在apache基准测试工具中限制每秒请求数

我正在尝试强调测试我的Spring Boot应用程序,但是当我运行以下命令时,ab正在做的是试图给出结果我的应用程序可以保持的最大值.但我需要检查我的应用程序是否可以按每秒特定请求保留.

ab -p req.json -T application/json -k -c 1000 -n 500000 http://myapp.com/customerTrack/v1/send
Run Code Online (Sandbox Code Playgroud)

从上面的命令给出的每秒请求数是4000,但实际上,我的应用程序中缓存了很多记录,这意味着它无法容纳那么多的rps.谁能告诉我如何在 ab 工具中设置每秒的特定请求?谢谢!

spring qa stress-testing

12
推荐指数
1
解决办法
1593
查看次数

java.lang.NoClassDefFoundError:在scala代码中通过spark-submit启动spark作业时无法初始化类

我有一个代码,如下所示

 object ErrorTest {
case class APIResults(status:String, col_1:Long, col_2:Double, ...)

def funcA(rows:ArrayBuffer[Row])(implicit defaultFormats:DefaultFormats):ArrayBuffer[APIResults] = {
  //call some API ang get results and return APIResults
  ...
}

// MARK: load properties
val props = loadProperties()
private def loadProperties(): Properties =  {
  val configFile = new File("config.properties")
  val reader = new FileReader(configFile)
  val props = new Properties()
  props.load(reader)
  props
}

def main(args: Array[String]): Unit = {
  val prop_a = props.getProperty("prop_a")

  val session = Context.initialSparkSession();
  import session.implicits._

  val initialSet = ArrayBuffer.empty[Row]
  val addToSet …

java scala apache-spark apache-spark-sql spark-dataframe

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

应用于scala中的元组列表时出现映射错误

如果将map方法应用于Scala中的元组列表,则会出现如下错误:

scala> val s = List((1,2), (3,4))
s: List[(Int, Int)] = List((1,2), (3,4))

scala> s.map((a,b) => a+b)
<console>:13: error: missing parameter type
Note: The expected type requires a one-argument function accepting a 2-Tuple.
    Consider a pattern matching anonymous function, `{ case (a, b) =>  ... }`
    s.map((a,b) => a+b)
            ^
<console>:13: error: missing parameter type
    s.map((a,b) => a+b)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将类似的map方法应用于Int列表,它可以正常工作:

scala> val t = List(1,2,3)
t: List[Int] = List(1, 2, 3)

scala> t.map(a => a+1)
res14: List[Int] …
Run Code Online (Sandbox Code Playgroud)

lambda scala

6
推荐指数
1
解决办法
358
查看次数

运行大部分时间都面临 GC 的重型 sparksql

我打算运行一个繁重的spark sql作业(附在最后),它运行了这么长时间,我查看了executors监控页面,它显示执行过程中消耗的GC时间如此之多:

在此处输入图片说明

但是Storage Memory非常低。然后我进入stage monitor页面,所有正在运行的任务都有很高的GC时间:

在此处输入图片说明

在此处输入图片说明

代码如下,谁能给我一个方法/方向来调试/调整/调整这种情况?谢谢!

object etaWithSpeed {

  def main(args: Array[String]): Unit = {
    val spark = SparkSession.builder()
                              .appName("etaWithSpeed")
                              .config("num-executors", 15)
                              .config("executor-memory", 4)
                              .enableHiveSupport()
                              .getOrCreate()
    import spark.implicits._
    spark.sparkContext.setLogLevel("WARN")

    import ch.hsr.geohash.{WGS84Point, GeoHash, BoundingBox}
    import math._
    import scala.annotation.tailrec

    def haversine(lat1:Double, lon1:Double, lat2:Double, lon2:Double)={
      val dLat=(lat2 - lat1).toRadians
      val dLon=(lon2 - lon1).toRadians

      val a = pow(sin(dLat/2),2) + pow(sin(dLon/2),2) * cos(lat1.toRadians) * cos(lat2.toRadians)
      val c = 2 * asin(sqrt(a))
      6372.8 * c
    }

    def geohash(lat: Double, lon: Double)={
      GeoHash.withBitPrecision(lat, lon, 30).toBase32 …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection hadoop jvm apache-spark

5
推荐指数
0
解决办法
1780
查看次数

如何将鼠标单击事件发送到mac osx中的窗口

谁能让我知道如何将鼠标点击事件发送到mac osx中的隐藏(不显示在前台)窗口?我正在尝试使用pyobjc或者pyautogui真的对这种情况不熟悉.任何关键字或想法将不胜感激.谢谢!

python macos objective-c

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

以后如何用键加入数组来取消加入?

我有两张桌子,即table1table2.table1很大,而table2小.另外,我有一个UDF函数,其接口定义如下:

--table1--
id
1
2
3

--table2--
category
a
b
c
d
e
f
g

UDF: foo(id: Int): List[String]
Run Code Online (Sandbox Code Playgroud)

我打算首先调用UDF获取相应的类别:foo(table1.id),它将返回一个WrappedArray,然后我想加入每个category进行table2更多的操作.预期结果应如下所示:

--view--

id,category
1,a
1,c
1,d
2,b
2,c
3,e
3,f
3,g
Run Code Online (Sandbox Code Playgroud)

我试图在Hive中找到一个不需要的方法,但没有运气,有人可以帮助我吗?谢谢!

hive hiveql apache-spark apache-spark-sql

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

浮动步的标量范围精度

我打算用0.05生成从0.05到0.95的数组,就像0.05, 0.1, 0.15, 0.2, ...。但是以下代码存在一些精度问题:

scala> 0.05 to 0.95 by 0.05
res11: scala.collection.immutable.NumericRange[Double] = NumericRange(0.05, 0.1, 0.15000000000000002, 0.2, 0.25, 0.3, 0.35, 0.39999999999999997, 0.44999999999999996, 0.49999999999999994, 0.5499999999999999, 0.6, 0.65, 0.7000000000000001, 0.7500000000000001, 0.8000000000000002, 0.8500000000000002, 0.9000000000000002)
Run Code Online (Sandbox Code Playgroud)

谁能给我一些关于如何解决这个问题的想法?谢谢。

scala

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

这个指针在Java中转义

阅读<Java Concurrency in Practice>时,有一个例子说下面的代码片段会导致this构造函数方法中的指针转义.但我不确定它究竟是什么意思,因为我thisThisEscape构造函数方法的源代码中看不到任何引用.有任何想法吗?谢谢.

public class ThisEscape {
    public ThisEscape(EventSource source)   {
        source.registerListener(
            new EventListener() {
                public void onEvent(Event e)    {
                    doSomething(e);
                }
            }
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

java pointers

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