例に似た R スクリプトがあります。ここでは、hdfs からいくつかのデータをロードし、この場合は Parquet ファイルを介して何らかの形で保存します。
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()
クラスターから別の Spark アプリケーションにデータを取得するにはどうすればよいですか? 現在、sbt-thrift をscroogeに置き換えることを除いて 、hdfs マスターに接続し、この例に従ってファイルを取得することを検討しています。
Hadoop クラスターに直接接続せずにデータを取得する、より慣用的な方法はありますか? hdfs からデータをコピーすることを検討しましたが、parquet は私が理解していることから Hadoop からしか読み取ることができません。