Also bin ich zu Apache Funken neu und ich habe eine Datei, die wie folgt aussieht:Wie mit Java Apache Spark MLlib arbeiten, wenn DataFrame Spalten hat?
Name Size Records
File1 1,000 104,370
File2 950 91,780
File3 1,500 109,123
File4 2,170 113,888
File5 2,000 111,974
File6 1,820 110,666
File7 1,200 106,771
File8 1,500 108,991
File9 1,000 104,007
File10 1,300 107,037
File11 1,900 111,109
File12 1,430 108,051
File13 1,780 110,006
File14 2,010 114,449
File15 2,017 114,889
Das ist meine Probe/Testdaten. Ich arbeite an einem Anomalie-Erkennungsprogramm und ich muss andere Dateien mit dem gleichen Format, aber unterschiedlichen Werten testen und feststellen, welche Anomalien in der Größe und den Aufzeichnungswerten bestehen (wenn sich Größe/Datensätze in einer anderen Datei stark von der Standarddatei unterscheiden) oder wenn Größe und Datensätze nicht proportional zueinander sind). Ich beschloss, verschiedene ML-Algorithmen auszuprobieren, und ich wollte mit dem k-Means-Ansatz beginnen. Ich habe versucht, diese Datei in die folgende Zeile zu setzen:
Datei ist bereits zu einer Datensatzvariable geparst. Allerdings bekomme ich einen Fehler und ich bin ziemlich sicher, dass es mit der Struktur/dem Schema der Datei zu tun hat. Gibt es eine Möglichkeit, mit strukturierten/etikettierten/organisierten Daten zu arbeiten, wenn man versucht, sich in ein Modell einzufügen?
Ich bekomme den folgenden Fehler: Ausnahme im Thread "Haupt" java.lang.IllegalArgumentException: Feld "Features" ist nicht vorhanden.
Und das ist der Code:
public class practice {
public static void main(String[] args) {
SparkConf conf = new SparkConf().setAppName("Anomaly Detection").setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);
SparkSession spark = SparkSession
.builder()
.appName("Anomaly Detection")
.getOrCreate();
String day1 = "C:\\Users\\ZK0GJXO\\Documents\\day1.txt";
Dataset<Row> df = spark.read().
option("header", "true").
option("delimiter", "\t").
csv(day1);
df.show();
KMeans kmeans = new KMeans().setK(2).setSeed(1L);
KMeansModel model = kmeans.fit(df);
}
}
Dank
Warte so, dass sie nur auf einer Spalte trainieren und den Rest ignorieren? –
Um in mehreren Spalten zu trainieren, können Sie einen Feature-Vektor mit VectorAssembler erstellen, wie in https://spark.apache.org/docs/latest/ml-features.html#vectorasembler beschrieben –