小编Den*_*Huo的帖子

使用带有DataFrames的spark-csv获取NullPointerException

通过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)

apache-spark spark-dataframe spark-csv

6
推荐指数
1
解决办法
3038
查看次数

将50TB数据从本地Hadoop集群迁移到Google云存储

我正在尝试将我的Hadoop集群中的现有数据(JSON)迁移到Google云端存储.

我已经探索过GSUtil,它似乎是将大数据集移动到GCS的推荐选项.它似乎可以处理庞大的数据集.虽然GSUtil似乎只能将数据从本地机器移动到GCS或S3 < - > GCS,但是无法从本地Hadoop集群移动数据.

  1. 将数据从本地Hadoop集群移动到GCS的推荐方法是什么?

  2. 对于GSUtil,它可以直接将数据从本地Hadoop集群(HDFS)移动到GCS,还是首先需要在运行GSUtil的机器上复制文件然后转移到GCS?

  3. 使用Google客户端(Java API)库与GSUtil的优缺点是什么?

非常感谢,

google-api google-api-java-client google-hadoop

5
推荐指数
1
解决办法
5945
查看次数

Hadoop无法连接到Google云端存储

我正在尝试将在Google Cloud VM上运行的Hadoop连接到Google云端存储.我有:

  • 修改core-site.xml以包含fs.gs.impl和fs.AbstractFileSystem.gs.impl的属性
  • 在生成的hadoop-env.sh中下载并引用了gcs-connector-latest-hadoop2.jar
  • 通过gcloud auth登录使用我的个人帐户(而不是服务帐户)进行身份验证.

我可以运行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存储?

谢谢!

google-app-engine hadoop google-cloud-storage google-hadoop

5
推荐指数
1
解决办法
2522
查看次数

如何将未编译的 Spark Scala/spark-shell 代码作为 Dataproc 作业运行?

通常情况下,如果我使用斯卡拉星火工作,我会编一个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”等效作业?

scala apache-spark google-cloud-dataproc

5
推荐指数
1
解决办法
350
查看次数