1
私は200万レコードのデータセットを持っています。私はそれを2つの等しい半分に分割したい。私はシリアルナンバーの列がないので、どこに条件を適用して2に分割することができます。それは適切なアプローチではないかもしれませんが、私がやりたいことはデータフレームを半分に分割することです。spalaを使ってデータフレームを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);
を今、私は2つの部分にinvoiceDFを分割したい、百万各 私は初心者ですと、コードは、恐れ入りますが、効率的ではないかもしれません。事前に
感謝:)
おかげでたくさん。ランダム化は問題ではない。 – Dileep
ランダム化せずに分割する方法はありますか?私はいくつかの条件、例えば、列の値> = 0.5に基づいて分割したい –