通过spark-csv README运行示例Java代码,如导入org.apache.spark.sql.SQLContext; import org.apache.spark.sql.types.*;
SQLContext sqlContext = new SQLContext(sc);
StructType customSchema = new StructType(
new StructField("year", IntegerType, true),
new StructField("make", StringType, true),
new StructField("model", StringType, true),
new StructField("comment", StringType, true),
new StructField("blank", StringType, true));
DataFrame df = sqlContext.read()
.format("com.databricks.spark.csv")
.option("inferSchema", "true")
.option("header", "true")
.load("cars.csv");
df.select("year", "model").write()
.format("com.databricks.spark.csv")
.option("header", "true")
.save("newcars.csv");
Run Code Online (Sandbox Code Playgroud)
它没有开箱即用的编译,因此通过一些争论,我将它编译为更改不正确的FooType语法DataTypes.FooType并将StructFields作为传递new StructField[]; 编译器metadata在构造函数中请求了第四个参数,StructField但是我很难找到它意味着什么的文档(javadocs描述了它的用例,但实际上并不是如何决定在StructField构造期间传递什么).使用以下代码,它现在运行,直到任何副作用方法,如collect():
JavaSparkContext sc = new JavaSparkContext(conf);
SQLContext sqlContext = new SQLContext(sc);
// Read features. …Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的Hadoop集群中的现有数据(JSON)迁移到Google云端存储.
我已经探索过GSUtil,它似乎是将大数据集移动到GCS的推荐选项.它似乎可以处理庞大的数据集.虽然GSUtil似乎只能将数据从本地机器移动到GCS或S3 < - > GCS,但是无法从本地Hadoop集群移动数据.
将数据从本地Hadoop集群移动到GCS的推荐方法是什么?
对于GSUtil,它可以直接将数据从本地Hadoop集群(HDFS)移动到GCS,还是首先需要在运行GSUtil的机器上复制文件然后转移到GCS?
使用Google客户端(Java API)库与GSUtil的优缺点是什么?
非常感谢,
我正在尝试将在Google Cloud VM上运行的Hadoop连接到Google云端存储.我有:
我可以运行gsutil -ls gs:// mybucket /但没有任何问题,但是当我执行时
hadoop fs -ls gs:// mybucket /
我得到输出:
14/09/30 23:29:31 INFO gcs.GoogleHadoopFileSystemBase: GHFS version: 1.2.9-hadoop2
ls: Error getting access token from metadata server at: http://metadata/computeMetadata/v1/instance/service-accounts/default/token
Run Code Online (Sandbox Code Playgroud)
想知道我缺少哪些步骤让Hadoop能够看到Google存储?
谢谢!
通常情况下,如果我使用斯卡拉星火工作,我会编一个jar文件,并提交它gcloud dataproc jobs submit spark,但有时非常轻巧的工作我可能会使用未编译Scala代码在笔记本或使用spark-shellREPL,在这里我假设SparkContext已经可用的。
对于其中一些轻量级用例,我可以等效地使用 PySpark 并提交,gcloud dataproc jobs submit pyspark但有时我需要更轻松地访问 Scala/Java 库,例如直接org.apache.hadoop.fs.FileSystem在 map 函数内创建对象。是否有任何简单的方法可以使用 Dataproc 作业 API 直接从命令行提交此类“spark-shell”等效作业?