Я не могу увидеть файл .csv, который я сохранил с помощью Spark & ​​Scala - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь сохранить в файл .csv результат запроса, выполненного с использованием SQL и Parquet, из DataFrame.

Вот как я написал свой запрос:

This his how I query

И вот как я сохраняю данные:

enter image description here

Но предполагаемый выходной файл .csv не там, где его можно увидеть:

enter image description here

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Чтобы добавить зависимость, запустите оболочку spark, используя следующую команду:

spark-shell --packages com.databricks: spark-csv_2.10: 1.5.0

Считайте ваш файл paraquet, используя:

val df = sqlContext.read.parquet("file:///home/mugdha/users.parquet")

Применить фильтр, выберите операции:

val filteredDF = df.select("name","favorite_color")

Чтобы сохранить отфильтрованный файл, вы можете использовать следующий код:

filteredDF.write.format("com.databricks.spark.csv").save("file:///home/mugdha/testSave")

Внутри папки testSave вы можете проверить сохраненный CSV.

0 голосов
/ 16 мая 2018

Вы можете попробовать добавить файл: ///home/hadoop/apr2.csv.gz вместо / home / hadoop.apr2.csv . Вы можете обратиться к следующему фрагменту кода, доступному в модуле spark-csv блоков данных, представленном в Github Spark CSV

import org.apache.spark.sql.SQLContext

val sqlContext = new SQLContext(sc)
val df = sqlContext.read
    .format("com.databricks.spark.csv")
    .option("header", "true") // Use first line of all files as header
    .option("inferSchema", "true") // Automatically infer data types
    .load("cars.csv")

val selectedData = df.select("year", "model")
selectedData.write
    .format("com.databricks.spark.csv")
    .option("header", "true")
    .option("codec", "org.apache.hadoop.io.compress.GzipCodec")
    .save("newcars.csv.gz")

Что касается префикса file: /// , мы обычно добавляем его, если хотим выполнить какую-либо операцию чтения или записи из локальной файловой системы вместо HDFS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...