相关疑难解决方法(0)

为什么Scala库只定义了Tuple22之前的元组?

我很好奇是否有人知道为什么Scala库22以其元组类型停止Tuple22
这个神秘的数字22是否具有特殊的隐藏意义?
这是某种内部玩笑吗?

scala

17
推荐指数
1
解决办法
3769
查看次数

如何制作列对映射?

我有一些专栏

age | company | country | gender |
----------------------------------
 1  |   1     |  1      |  1     |
-----------------------------------
Run Code Online (Sandbox Code Playgroud)

我想创建像这样的对

  • (年龄,公司)
  • (公司,国家)
  • (国家,性别)
  • (公司,性别)
  • (年龄,性别)
  • (年龄,国家)
  • (年龄,公司,国家)
  • (公司,国家,性别)
  • (年龄,国家,性别)
  • (年龄,公司,性别)
  • (年龄,公司,国家,性别)

scala playframework-2.0

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

Scala案例类参数从数组实例化

考虑一个可能有大量成员的案例类; 为了说明这个案例假设两个论点,如

case class C(s1: String, s2: String)
Run Code Online (Sandbox Code Playgroud)

因此假设一个大小至少为那么多参数的数组,

val a = Array("a1", "a2")
Run Code Online (Sandbox Code Playgroud)

然后

scala> C(a(0), a(1))
res9: C = c(a1,a2)
Run Code Online (Sandbox Code Playgroud)

但是,是否存在一种案例类实例化方法,其中不需要为数组中的每个元素引用任何(可能是大量)预定义类成员?

arrays scala class instantiation shapeless

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

将List转换为DataFrame Spark Scala

我有超过30个字符串的列表。如何将列表转换为数据框。我试过的

例如

Val list=List("a","b","v","b").toDS().toDF()

Output :


+-------+
|  value|
+-------+
|a      |
|b      |
|v      |
|b      |
+-------+


Expected Output is 


  +---+---+---+---+
| _1| _2| _3| _4|
+---+---+---+---+
|  a|  b|  v|  a|
+---+---+---+---+
Run Code Online (Sandbox Code Playgroud)

任何对此的帮助。

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

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

Scala:映射元组中的第一个元素

我想在元组上使用一些函数,它返回元组只有第一个元素被转换而其他元素没有变化.

这是Tuple2的天真版本:

def mapFirst[T, U, R](tuple: (T, U))(f: T => R): (R, U) = tuple match {
     |   case (x, y) => f(x) -> y
     | }

mapFirst((1, 2))(_ * 5) // returns (5, 2)
Run Code Online (Sandbox Code Playgroud)

虽然,它不觉得原生,我想要的是这样写:

(1, 2).mapFirst(_ * 5)
Run Code Online (Sandbox Code Playgroud)

我写了隐式转换然后:

class RichTuple[T, U](tuple: (T, U)) {
  def mapFirst[R](f: T => R): (R, U) = tuple match {
    case (x, y) => f(x) -> y
  }
}

implicit def tuple2RichTuple[T, U](tuple: (T, U)): RichTuple[T, U] = new RichTuple(tuple)

(1, 2).mapFirst(_ …
Run Code Online (Sandbox Code Playgroud)

scala tuples

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

从scala中的Tuple3的前两个元素中获取Tuple2

给定一个Tuple3,例如("one", "two", "three")我想获得tuple2,它只包含前两个元素("one", "two").

一种方法是这样的:

val (one, two, _) = ("one", "two", "three")
val result = (one, two)
Run Code Online (Sandbox Code Playgroud)

但是,如果我想从tuple16获取tuple14,那该怎么办呢?样板.

更新:

更具体的用例(func2和func3不能更改).

def func3(one: String, two: String, three: String) = println("Do something") 
def func2(one: String, two: String) = println("Do something 2")

val originalTuple = ("one", "two", "three")
val newTuple = ???

(func3 _).tupled(originalTuple)
(func2 _).tupled(newTuple)
Run Code Online (Sandbox Code Playgroud)

scala tuples

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

给定任意大小的Seq [Any],如何在参数类型不同的情况下使用此函数调用函数,例如Int,String

我正在为任何数量的参数寻找一种通用的解决方案(我可以说实际上并不是超过15个参数),我有一个函数。

def test(a: String, b: Int): Int = 0
Run Code Online (Sandbox Code Playgroud)

我有一个Seq [Any]。

val seq: Seq[Any] = Seq("Hi", 5)
Run Code Online (Sandbox Code Playgroud)

如何使用此seq作为参数调用功能测试?

现在,我尝试了一下,test(seq:_*)但是那不起作用,因为它与函数类型不匹配,编译器无法理解要使用哪个函数。

Scala宏在这里有用吗?

(您正在查看并思考,这是一个坏主意,为什么首先要使用Seq [Any]?它的坏习惯,是的,但这是一个问题,我不是在问它是否是一个好主意。还是不,因为我知道它不好,所以我有一个Seq [Any],然后从那里开始出现问题)

scala

0
推荐指数
1
解决办法
65
查看次数