Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.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
使用spark将Scala中的数据帧拆分为两个或多个数据帧_Scala_Apache Spark - Fatal编程技术网

使用spark将Scala中的数据帧拆分为两个或多个数据帧

使用spark将Scala中的数据帧拆分为两个或多个数据帧,scala,apache-spark,Scala,Apache Spark,我有一个200万条记录的数据集。我想把它分成两半。我没有任何序列号的列,因此我可以对其应用where条件并将其拆分为2。这可能不是正确的方法,但我想做的就是将一个数据帧分割成2个半帧 我正在使用的示例代码: var invoiceData = sc.textFile("/Scala/InvoiceLine.csv"); def removeheader (x : RDD[String]): RDD[String] = { x.mapPartitionsWithIndex((idx, line

我有一个200万条记录的数据集。我想把它分成两半。我没有任何序列号的列,因此我可以对其应用where条件并将其拆分为2。这可能不是正确的方法,但我想做的就是将一个数据帧分割成2个半帧

我正在使用的示例代码:

var invoiceData = sc.textFile("/Scala/InvoiceLine.csv");
def removeheader (x : RDD[String]): RDD[String] = {
  x.mapPartitionsWithIndex((idx, lines) => {
    if (idx == 0) {
      lines.drop(1)
    }
    lines
  })
}
var invoiceWithoutHeader = removeheader(invoiceData);
var invoiceSchemaString = invoiceData.first().toUpperCase().split(",").map(_.trim());
var invoiceSchema = StructType(invoiceSchemaString.map(fieldName => StructField(fieldName, StringType, true)))
var invoiceRowRDD = invoiceWithoutHeader.map(y => {
  var parser = new CSVParser(',');
  parser.parseLine(y)
}).map { x => Row.fromSeq(x) } 
var invoiceDF = sqlContext.applySchema(invoiceRowRDD, invoiceSchema);
现在我想把invoiceDF分成两部分,每个100万 由于我是一个初学者,该代码可能没有效率对不起


提前感谢:)

如果随机化数据不是问题,您可以使用
randomspilt()


如果数据随机化不是问题,您可以使用
randomspilt()


谢谢。随机化不是问题。有没有一种方法可以在不随机化的情况下进行拆分?我想根据一些条件进行拆分,比如列值>=0.5如果您有一些条件,那么您可以只使用筛选函数。谢谢。随机化不是问题。有没有一种方法可以在不随机化的情况下进行拆分?我想根据一些条件进行拆分,比如列值>=0.5如果您有一些条件,那么您可以使用filter函数
val Array(half1, half2) = invoiceDF.randomSplit(Array(0.5, 0.5))