คำถามติดแท็ก scala

Scala เป็นภาษาการเขียนโปรแกรมที่ใช้งานทั่วไปโดยมีเป้าหมายหลักที่ Java Virtual Machine ออกแบบมาเพื่อแสดงรูปแบบการเขียนโปรแกรมทั่วไปในรูปแบบที่กระชับสง่างามและปลอดภัยในการใช้งาน คุณสมบัติที่สำคัญของมันคือ: ระบบประเภทคงที่ขั้นสูงที่มีการอนุมานประเภท; ประเภทฟังก์ชั่น รูปแบบจับคู่; พารามิเตอร์และการแปลงโดยนัย ผู้ประกอบการมากไป; การทำงานร่วมกันอย่างสมบูรณ์กับ Java; เห็นพ้องด้วย

1
Spark: UDF ดำเนินการหลายครั้ง
ฉันมีชื่อไฟล์พร้อมรหัสต่อไปนี้: def test(lat: Double, lon: Double) = { println(s"testing ${lat / lon}") Map("one" -> "one", "two" -> "two") } val testUDF = udf(test _) df.withColumn("test", testUDF(col("lat"), col("lon"))) .withColumn("test1", col("test.one")) .withColumn("test2", col("test.two")) ตอนนี้ตรวจสอบล็อกฉันพบว่าสำหรับแต่ละแถว UDF จะถูกดำเนินการ 3 ครั้ง ถ้าฉันเพิ่ม "test3" จากคอลัมน์ "test.three" ดังนั้น UDF จะถูกดำเนินการอีกครั้ง มีคนอธิบายได้ไหมทำไม สามารถหลีกเลี่ยงสิ่งนี้ได้อย่างถูกต้องหรือไม่ (โดยไม่ต้องแคชข้อมูลหลังจากที่เพิ่ม "test" แม้ว่าจะใช้งานได้)?

3
GRPC: สร้างไคลเอนต์ความเร็วสูงใน Java / Scala
ฉันมีบริการที่โอนข้อความในอัตราที่ค่อนข้างสูง ขณะนี้มีให้บริการโดย akka-tcp และสร้างข้อความ 3.5M ต่อนาที ฉันตัดสินใจที่จะลอง grpc โชคไม่ดีที่มันส่งผลให้ปริมาณงานน้อยลง: ~ 500k ข้อความต่อนาทียิ่งน้อยลง คุณช่วยแนะนำวิธีเพิ่มประสิทธิภาพได้ไหม การตั้งค่าของฉัน ฮาร์ดแวร์ : 32 แกน 24Gb กอง รุ่น grpc: 1.25.0 รูปแบบข้อความและจุดสิ้นสุด ข้อความนั้นเป็นฐานสองหยด สตรีม 100K - 1M และข้อความอื่น ๆ อีกมากมายในคำขอเดียวกัน (แบบอะซิงโครนัส) เซิร์ฟเวอร์ไม่ตอบสนองกับสิ่งใดลูกค้าใช้ผู้สังเกตการณ์แบบไม่มี op service MyService { rpc send (stream MyMessage) returns (stream DummyResponse); } message MyMessage { int64 …
9 java  scala  grpc 

2
ควรสร้างวัตถุ stateful ควรเป็นแบบจำลองชนิดของเอฟเฟกต์หรือไม่?
เมื่อใช้สภาพแวดล้อมที่ใช้งานได้เช่น Scala และcats-effectควรสร้างแบบจำลองวัตถุที่มีสภาวะเป็น state หรือไม่? // not a value/case class class Service(s: name) def withoutEffect(name: String): Service = new Service(name) def withEffect[F: Sync](name: String): F[Service] = F.delay { new Service(name) } การก่อสร้างไม่ได้ทำผิดได้ดังนั้นเราจึงสามารถใช้ typeclass Applyปรับตัวลดลงเช่น // never throws def withWeakEffect[F: Applicative](name: String): F[Service] = new Service(name).pure[F] ฉันเดาว่าทั้งหมดนี้บริสุทธิ์และไม่แน่นอน เพียง แต่ไม่อ้างอิงอย่างโปร่งใสเนื่องจากอินสแตนซ์ที่ได้นั้นแตกต่างกันในแต่ละครั้ง เป็นเวลาที่ดีในการใช้เอฟเฟกต์หรือไม่? หรือจะมีรูปแบบการทำงานที่แตกต่างกันที่นี่


1
ความแตกต่างระหว่างการอนุมานประเภทของเมธอดและพารามิเตอร์ประเภทคลาสในการจับคู่รูปแบบ
ทำไมการจับคู่รูปแบบทำงานแตกต่างกันเมื่อพารามิเตอร์ชนิดมาจากวิธีการปิดล้อมซึ่งตรงข้ามกับคลาสที่ล้อมรอบ ตัวอย่างเช่น, trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } ให้ข้อผิดพลาด constructor cannot be instantiated to expected type; found : A$A87.this.Derived required: A$A87.this.Base[A] case Derived(_) => 42 ^ ในขณะที่มันประสบความสำเร็จในการรวบรวมเมื่อAเป็นพารามิเตอร์ประเภทวิธี class Test { …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.