Lesen lokales Parkett-Dateien in Spark 2.0
Zündkerzen 1.6.2 ich bin in der Lage zu Lesen, lokalen Parkett-Dateien aus, indem Sie eine sehr einfache:
SQLContext sqlContext = new SQLContext(new SparkContext("local[*]", "Java Spark SQL Example"));
DataFrame parquet = sqlContext.read().parquet("file:///C:/files/myfile.csv.parquet");
parquet.show(20);
Ich versuche, zu aktualisieren, um Funken 2.0.0 und erreichen das gleiche durch:
SparkSession spark = SparkSession.builder().appName("Java Spark SQL Example").master("local[*]").getOrCreate();
Dataset<Row> parquet = spark.read().parquet("file:///C:/files/myfile.csv.parquet");
parquet.show(20);
Dies ist unter Windows läuft, von intellij (Java-Projekt), und ich bin nicht gerade ein hadoop-cluster (es wird später kommen, aber im moment bin ich einfach nur zu versuchen, um die Logik der Verarbeitung die Rechte und Holen Sie sich vertraut mit den APIs).
Leider beim ausführen mit spark 2.0, der code gibt eine Ausnahme:
Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: file:C:/[my intellij project path]/spark-warehouse
at org.apache.hadoop.fs.Path.initialize(Path.java:206)
at org.apache.hadoop.fs.Path.<init>(Path.java:172)
at org.apache.spark.sql.catalyst.catalog.SessionCatalog.makeQualifiedPath(SessionCatalog.scala:114)
at org.apache.spark.sql.catalyst.catalog.SessionCatalog.createDatabase(SessionCatalog.scala:145)
at org.apache.spark.sql.catalyst.catalog.SessionCatalog.<init>(SessionCatalog.scala:89)
at org.apache.spark.sql.internal.SessionState.catalog$lzycompute(SessionState.scala:95)
at org.apache.spark.sql.internal.SessionState.catalog(SessionState.scala:95)
at org.apache.spark.sql.internal.SessionState$$anon$1.<init>(SessionState.scala:112)
at org.apache.spark.sql.internal.SessionState.analyzer$lzycompute(SessionState.scala:112)
at org.apache.spark.sql.internal.SessionState.analyzer(SessionState.scala:111)
at org.apache.spark.sql.execution.QueryExecution.assertAnalyzed(QueryExecution.scala:49)
at org.apache.spark.sql.Dataset$.ofRows(Dataset.scala:64)
at org.apache.spark.sql.SparkSession.baseRelationToDataFrame(SparkSession.scala:382)
at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:143)
at org.apache.spark.sql.DataFrameReader.parquet(DataFrameReader.scala:427)
at org.apache.spark.sql.DataFrameReader.parquet(DataFrameReader.scala:411)
at lili.spark.ParquetTest.main(ParquetTest.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.net.URISyntaxException: Relative path in absolute URI: file:C:/[my intellij project path]/spark-warehouse
at java.net.URI.checkPath(URI.java:1823)
at java.net.URI.<init>(URI.java:745)
at org.apache.hadoop.fs.Path.initialize(Path.java:203)
... 21 more
Ich habe keine Ahnung, warum er versucht, etwas zu berühren, in mein Projekt-Verzeichnis gibt es eine bit-Konfiguration, die mir fehlen, die war vernünftig ausgefallenen Zündkerzen 1.6.2, ist aber nicht mehr der Fall, in 2.0? In anderen Worten, was ist der einfachste Weg, um Lesen Sie ein lokales Parkett-Datei in spark 2.0 auf windows?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie Sie ausgeführt in SPARK-15893. Die Spark-Entwickler geänderte Datei Lesen von 1.6.2 auf 2.0.0.
Aus den Kommentaren auf der JIRA -, sollten Sie gehen, um die conf\spark-defaults.conf-Datei und fügen in:
Sollten Sie dann in der Lage sein, zu laden, eine Parkett-Datei, etwa so:
spark.read.parquet
mit dem Pfad-string, ohne die zusätzlichen Komplikationen, zumindest bei Verwendung eines local master