Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Scala,Spark代码:迭代数组并使用数组中的元素计算表达式_Apache Spark - Fatal编程技术网

Apache spark Scala,Spark代码:迭代数组并使用数组中的元素计算表达式

Apache spark Scala,Spark代码:迭代数组并使用数组中的元素计算表达式,apache-spark,Apache Spark,我正在用scala spark编码,并试图分离所有字符串和列数据类型。 我得到了列(2)2的输出,虽然有一个警告,但是当我在if语句中应用相同的东西时,我得到了一个错误。你知道为什么吗。这一部分通过添加列(2)得到解决。\u 2:David Griffin var df = some dataframe var columns = df.dtypes var colnames = df.columns.size var stringColumns:Array[(String,String)]

我正在用scala spark编码,并试图分离所有字符串和列数据类型。 我得到了列(2)2的输出,虽然有一个警告,但是当我在if语句中应用相同的东西时,我得到了一个错误。你知道为什么吗。这一部分通过添加列(2)得到解决。\u 2:David Griffin

var df = some dataframe
var columns = df.dtypes
var colnames = df.columns.size

var stringColumns:Array[(String,String)] = null;
var doubleColumns:Array[(String,String)] = null;
var otherColumns:Array [(String,String)] = null;

columns(2)._2
columns(2)._1

for (x<-1 to colnames)
{ 
    if (columns(x)._2 == "StringType")
     {stringColumns = stringColumns ++  Seq((columns(x)))}

    if (columns(x)._2 == "DoubleType")
     {doubleColumns = doubleColumns ++  Seq((columns(x)))}

    else
     {otherColumns = otherColumns ++ Seq((columns(x)))}
}

我相信你错过了一个
。更改此项:

columns(2)_2

如果没有别的,它将摆脱警告

然后,你需要做:

++ Seq(columns(x))
下面是一个更清晰的示例:

scala> val arr = Array[(String,String)]()
arr: Array[(String, String)] = Array()

scala> arr ++ (("foo", "bar"))
<console>:9: error: type mismatch;
 found   : (String, String)
 required: scala.collection.GenTraversableOnce[?]
          arr ++ (("foo", "bar"))

scala> arr ++  Seq(("foo", "bar"))
res2: Array[(String, String)] = Array((foo,bar))
scala>val-arr=Array[(字符串,字符串)]()
arr:Array[(字符串,字符串)]=数组()
scala>arr++((“foo”,“bar”))
:9:错误:类型不匹配;
找到:(字符串,字符串)
必需:scala.collection.GenTraversableOnce[?]
arr++(“foo”,“bar”))
scala>arr++Seq((“foo”,“bar”))
res2:Array[(String,String)]=数组((foo,bar))

我想你少了一个
。更改此项:

columns(2)_2

如果没有别的,它将摆脱警告

然后,你需要做:

++ Seq(columns(x))
下面是一个更清晰的示例:

scala> val arr = Array[(String,String)]()
arr: Array[(String, String)] = Array()

scala> arr ++ (("foo", "bar"))
<console>:9: error: type mismatch;
 found   : (String, String)
 required: scala.collection.GenTraversableOnce[?]
          arr ++ (("foo", "bar"))

scala> arr ++  Seq(("foo", "bar"))
res2: Array[(String, String)] = Array((foo,bar))
scala>val-arr=Array[(字符串,字符串)]()
arr:Array[(字符串,字符串)]=数组()
scala>arr++((“foo”,“bar”))
:9:错误:类型不匹配;
找到:(字符串,字符串)
必需:scala.collection.GenTraversableOnce[?]
arr++(“foo”,“bar”))
scala>arr++Seq((“foo”,“bar”))
res2:Array[(String,String)]=数组((foo,bar))

这是由大卫·格里芬的答案修改而来的答案,所以请也投票给他。刚把++改成+:=

var columns = df.dtypes
var colnames = df.columns.size

var stringColumns= Array[(String,String)]();
var doubleColumns= Array[(String,String)]();
var otherColumns= Array[(String,String)]();


for (x<-0 to colnames-1)
{ 
    if (columns(x)._2 == "StringType"){
        stringColumns +:= columns(x)
    }else if (columns(x)._2 == "DoubleType") {
        doubleColumns +:= columns(x)
    }else {
        otherColumns +:= columns(x)
     }
}
println(stringColumns)
println(doubleColumns)
println(otherColumns)
var columns=df.dtypes
var colnames=df.columns.size
var stringColumns=Array[(String,String)]();
var doubleColumns=数组[(字符串,字符串)]();
var otherColumns=Array[(String,String)]();

对于(x这是从David Griffins的答案修改而来的答案,所以请也投票给他。只是将++改为+:=

var columns = df.dtypes
var colnames = df.columns.size

var stringColumns= Array[(String,String)]();
var doubleColumns= Array[(String,String)]();
var otherColumns= Array[(String,String)]();


for (x<-0 to colnames-1)
{ 
    if (columns(x)._2 == "StringType"){
        stringColumns +:= columns(x)
    }else if (columns(x)._2 == "DoubleType") {
        doubleColumns +:= columns(x)
    }else {
        otherColumns +:= columns(x)
     }
}
println(stringColumns)
println(doubleColumns)
println(otherColumns)
var columns=df.dtypes
var colnames=df.columns.size
var stringColumns=Array[(String,String)]();
var doubleColumns=数组[(字符串,字符串)]();
var otherColumns=Array[(String,String)]();

例如(xThanks摆脱了警告您是否尝试将
columns(x)\u2
更改为
columns(x)。\u2
?编辑了我的答案-++要求您将右侧包装为
Seq(…)
Hmmm…。我一定是做错了什么。我收到了空指针异常错误,我直接添加了Seq(((“Foo”,“bar”))根据逻辑,我得到了相同的错误。谢谢你的帮助谢谢你摆脱了警告你是否尝试将
列(x)_2
更改为
列(x)。_2
?编辑了我的答案-++要求你将右手边用
顺序(…)
Hmmm…。我一定是做错了什么。我得到了空指针异常错误。我直接将Seq((“Foo”,“bar”)添加到逻辑中,得到了相同的错误。谢谢你的帮助