1

hdfs を介して ec2 クラスターで動作するように、spark の例を少し変更しました。しかし、寄木細工のファイルへの保存で動作する例を取得しただけです。

library(SparkR)

# Initialize SparkContext and SQLContext
sc <- sparkR.init()
sqlContext <- sparkRSQL.init(sc)

# Create a simple local data.frame
localDF <- data.frame(name=c("John", "Smith", "Sarah"), age=c(19, 23, 18))

# Create a DataFrame from a JSON file
peopleDF <- jsonFile(sqlContext, file.path("/people.json"))

# Register this DataFrame as a table.
registerTempTable(peopleDF, "people")

# SQL statements can be run by using the sql methods provided by sqlContext
teenagers <- sql(sqlContext, "SELECT name FROM people WHERE age >= 13 AND age <= 19")

# Store the teenagers in a table
saveAsParquetFile(teenagers, file.path("/teenagers"))

# Stop the SparkContext now
sparkR.stop()

saveDFの代わりに使用するとsaveAsParquetFile、hdfs に空のファイルしか取得されません。

drwxr-xr-x   - root supergroup          0 2015-07-23 15:14 /teenagers

データフレームをテキスト ファイル (json/csv/...) として保存するにはどうすればよいですか?

4

1 に答える 1

1

スパーク 2.x

Spark 2.0 以降ではcsvライターが組み込まれており、外部依存関係は必要ありません。

write.df(teenagers, "teenagers", "csv", "error")

スパーク 1.x

使用できますspark-csv

Sys.setenv('SPARKR_SUBMIT_ARGS' = 
   '"--packages" "com.databricks:spark-csv_2.10:1.1.0" "sparkr-shell"')
sqlContext <- sparkRSQL.init(sc)

... # The rest of your code

write.df(teenagers, "teenagers", "com.databricks.spark.csv", "error")

インタラクティブ モードでは、SparkR シェルを次のように開始します--packages

bin/sparkR --packages com.databricks:spark-csv_2.10:1.1.0 
于 2015-07-23T15:43:02.580 に答える