spark 访问阿里云OSS

2023-11-01

pom.xml


    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spark.version>2.3.0</spark.version>
        <cupid.sdk.version>3.3.8-public</cupid.sdk.version>
        <scala.version>2.11.8</scala.version>
        <scala.binary.version>2.11</scala.binary.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>


        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.binary.version}</artifactId>
            <version>${spark.version}</version>
<!--            <scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_${scala.binary.version}</artifactId>
            <version>${spark.version}</version>
<!--            <scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-mllib_${scala.binary.version}</artifactId>
            <version>${spark.version}</version>
<!--            <scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_${scala.binary.version}</artifactId>
            <version>${spark.version}</version>
<!--            <scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>com.aliyun.odps</groupId>
            <artifactId>cupid-sdk</artifactId>
            <version>${cupid.sdk.version}</version>
<!--            <scope>provided</scope>-->
        </dependency>
        <dependency>
            <groupId>com.aliyun.odps</groupId>
            <artifactId>hadoop-fs-oss</artifactId>
            <version>${cupid.sdk.version}</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun.odps</groupId>
            <artifactId>odps-spark-datasource_${scala.binary.version}</artifactId>
            <version>${cupid.sdk.version}</version>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-actors</artifactId>
            <version>${scala.version}</version>
        </dependency>


    </dependencies>

报错

Exception in thread "main" java.io.IOException: No FileSystem for scheme: oss
	at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2586)
	at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2593)
	at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:91)
	at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2632)
	at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2614)
	at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:370)
	at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
	at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:256)
	at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:228)
	at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:313)
	at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:200)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:253)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:251)
	at scala.Option.getOrElse(Option.scala:121)
	at org.apache.spark.rdd.RDD.partitions(RDD.scala:251)
	at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:253)
	at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:251)
	at scala.Option.getOrElse(Option.scala:121)
	at org.apache.spark.rdd.RDD.partitions(RDD.scala:251)
	at org.apache.spark.SparkContext.runJob(SparkContext.scala:2092)
	at org.apache.spark.rdd.RDD.count(RDD.scala:1162)
	at OSSTest$.main(OSSTest.scala:25)
	at OSSTest.main(OSSTest.scala)

scala 代码

指定 spark.hadoop.fs.oss.impl 参数为:

org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem
import org.apache.spark.sql.SparkSession

object OSSTest {
  def main(args: Array[String]): Unit = {

    val spark = SparkSession
      .builder()
      .config("spark.master", "local[4]") // 需要设置spark.master为local[N]才能直接运行,N为并发数。
      //      需要指定oss类型
      .config("spark.hadoop.fs.oss.impl", "org.apache.hadoop.fs.aliyun.oss.AliyunOSSFileSystem")
      .config("spark.hadoop.fs.oss.accessKeyId", "xxxxx")
      .config("spark.hadoop.fs.oss.accessKeySecret", "xxxxxx")
      .config("spark.hadoop.fs.oss.endpoint", "oss-cn-beijing.aliyuncs.com")
      .appName("SparkOSS2")
      .getOrCreate()

    val sc = spark.sparkContext
    try {
      //OSS文件的读取。
      val pathIn = "oss://bucket_name/data/server"
      val inputData = sc.textFile(pathIn, 5)
      //      val cnt = inputData.count
      val cnt = inputData.count()
      println(s"count: $cnt")

      //RDD写入。
      //      inputData.repartition(1).saveAsTextFile("oss://spark-oss/user/data3")

    } finally {
      sc.stop()
    }


  }

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spark 访问阿里云OSS 的相关文章

  • 如何以最佳方式传递元组参数?

    如何以最佳方式传递元组参数 Example def foo Int Int def bar a Int b Int 现在我想传递的输出foo to bar 这可以通过以下方式实现 val fooResult foo bar fooResul
  • IntelliJ IDEA 13:新的 Scala SBT 项目尚未生成 src 目录结构

    我按照 Jetbrains 网站上的入门视频设置 IntelliJ IDEA 13 1 Community Edition 以与 Scala 配合使用 Scala 插件 v0 36 431 已安装 当我使用向导创建一个新的 Scala SB
  • 以编程方式启动 Scala REPL?

    我想从命令行启动 Scala Swing 应用程序 然后在应用程序启动后 放入 Scala REPL 中以用作控制界面 理想情况下 我还想预先绑定一些变量名称 更好的是使用 REPL 的 Java2D 终端模拟器 但我找不到任何合适的东西
  • 如何将模型结果保存到文本文件?

    我正在尝试将从模型生成的频繁项集保存到文本文件中 该代码是 Spark ML 库中 FPGrowth 示例的示例 Using saveAsTextFile直接在模型上写入 RDD 位置而不是实际值 import org apache spa
  • Scala 2.9 无法在 Windows XP 上运行“hello world”示例

    我正在尝试在 Windows XP 上使用 scala 2 9 1 Final 运行 HelloWorld 示例 object HelloWorld extends App println Hello World 文件另存为Hello sc
  • Akka Stream Graph 恢复问题

    我创建了一个图表来并行化具有相同输入的两个流 这些流产生 Future Option Entity 如果 flowA 失败 我想返回 Future None 但恢复似乎没有被调用 val graph Flow Input Future Op
  • Scala 宏的位置怎么了?

    我试图获取宏参数的原始输入字符串 但返回的位置似乎有点偏离 考虑这个宏 例如 object M import scala reflect macros Context import language experimental macros
  • Scala 的代码覆盖率工具 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 可选择将项目添加到 Scala 映射

    我正在寻找这个问题的惯用解决方案 我正在构建一个valScala 不可变 Map 并希望有选择地添加一项或多项 val aMap Map key1 gt value1 key2 gt value2 if condition key3 gt
  • 对两种类型之间的二元关系进行建模

    有企业 也有人 用户可以对某个企业点赞或发表评论 但效果是一样的can not发生在一个人身上 当用户发布有关某个企业的内容或对其点赞时 该企业就被称为target喜欢或帖子 trait TargetingRelation Targetin
  • 如何使用 Spark 2 屏蔽列?

    我有一些表 我需要屏蔽其中的一些列 要屏蔽的列因表而异 我正在读取这些列application conf file 例如 对于员工表如下所示 id name age address 1 abcd 21 India 2 qazx 42 Ger
  • andThen 类型不匹配的 Scala 链接函数

    我有一堆函数可以清理文本并将它们分成单词 最小的例子 val txt Mary had a little nlamb val stopwords Seq a def clean text String String text replace
  • Slick和bonecp:org.postgresql.util.PSQLException:FATAL:抱歉,太多客户端已经错误

    当我在本地开发应用程序时 我使用以下命令启动我的 play2 应用程序sbt run 我喜欢如何更改代码 然后重新加载浏览器以查看我的更改 在大约 10 次代码更改之后 我收到 postgresql 太多连接错误 见下文 我的数据库连接使用
  • Spark scala 模拟 Spark.implicits 用于单元测试

    当尝试使用 Spark 和 Scala 简化单元测试时 我使用 scala test 和mockito scala 以及mockito Sugar 这只是让你做这样的事情 val sparkSessionMock mock SparkSes
  • Scala 案例类忽略 Spark shell 中的导入

    我希望这个问题有一个明显的答案 我刚刚升级到 Spark v2 0 并且遇到了一个奇怪的问题火花外壳 Scala 2 11 版本 如果我输入以下最小的 Scala import java sql Timestamp case class C
  • 如何关闭 Scala 中因方法重载而导致代码无法编译的特定隐式?

    我正忙着尝试自己回答这个问题 Scala Play 2 4 x 通过 anorm MySQL 处理扩展字符到 Java Mail https stackoverflow com questions 31417718 scala play 2
  • IntelliJ IDEA 能否正确格式化 scala.html 文件以及如何启用它?

    IntelliJ IDEA 12 Ultimate 和 CE 格式化我的 main scala html 文件中的以下行 在 Play 应用程序中 main css gt As main css gt 是的 真的 它分解了带引号的字符串 我
  • 使用 scalapb 在 Spark Streaming 中解码 Proto Buf 消息时出错

    这是一个 Spark Streaming 应用程序 它使用编码的 Kafka 消息Proto Buf Using scalapb图书馆 我收到以下错误 请帮忙 gt com google protobuf InvalidProtocolBu
  • 了解 Spark 中的 DAG

    问题是我有以下 DAG 我认为当需要洗牌时 火花将工作划分为不同的阶段 考虑阶段 0 和阶段 1 有些操作不需要洗牌 那么为什么 Spark 将它们分成不同的阶段呢 我认为跨分区的实际数据移动应该发生在第 2 阶段 因为这里我们需要cogr
  • 如何调用 Scala 抽象类型的构造函数?

    我试图弄清楚如何调用 Scala 抽象类型的构造函数 class Journey val length Int class PlaneJourney length Int extends Journey length class BoatJ

随机推荐

  • Go读取Xml标签数据

    目录 目录结构 xzm xml文件 readMysqlXml go代码 效果展示 作者留言 目录结构 xzm xml文件
  • Netty一,Rest风格,Netty的Helloword、

    Rest风格 为一种编码风格 默认约定 NettyHelloword 客户端 和服务器端 服务器端 package com netty c1 import io netty bootstrap ServerBootstrap import
  • 互融云农产品追溯系统:区块链存证技术实现双向可追溯

    农产品溯源是食品溯源中最复杂和最艰难的部分 是指通过采集农产品在生产 加工 仓储 物流等环节的相关数据 建立一个涵盖从初级到深加工各个阶段的可视化农产品信息库 向消费者充分展示产品安全与品质相关信息 实现从农田到餐桌的双向可追溯 农产品需求
  • Unity解析OSM数据,并生成简单模型

    文章目录 一 介绍XML数据格式 二 Unity解析XML数据格式的方法 1 C 自带的方法 2 Unity读取TextAsset方法 三 OSM数据介绍 四 Unity解析OSM数据 1 定义node和way的数据结构 2 获取XML文件
  • 辐射定标、大气校正

    辐射校正 指在光学遥感数据获取过程中 产生的一切与辐射有关的误差的校正 包括辐射定标和大气校正 三者关系如图 大气校正的准备过程为辐射定标 表观反射率 表观反射率就是指大气层顶的反射率 辐射定标的结果之一 大气层顶表观反射率 简称表观反射率
  • vue键盘按下事件_vue修饰符可能是东半球最详细的文档(滑稽)

    前端媛猿 读完需要 8 分钟 速读仅需 5 分钟 作者 李大雷 https segmentfault com a 1190000016786254 为了方便大家写代码 vue js给大家提供了很多方便的修饰符 比如我们经常用到的取消冒泡 阻
  • Java知识点梳理:Collection框架

    java集合类是开发中经常用到的 比如ArrayList HashMap HashSet等 下面来系统的说一下 Collection类图 Collections与Collection Collection 是一个集合接口 提供了对集合对象进
  • 文本异常检测

    原文 简单的word2vec进行平均在句子语义相似性的计算上效果一般般 很好理解 我爱你和你爱我的句子含义不一样 但是直接进行平均最终的结果是一样的 这类策略忽略了item的顺序信息 不过对于无序的items来说问题不大吧 sif并没有解决
  • 怎么查看jvm垃圾回收的算法看是那个

    在控制台输入命令 java XX PrintCommandLineFlags version 显示结果 XX UseParallelGC 新生代使用ParallerGC 老年代使用Serial Old 垃圾回收器列表 并行 垃圾收集的多线程
  • Drain基于固定深度解析树

    论文地址 http jmzhu logpai com pub pjhe icws2017 pdf Drain可以以流方式实时解析日志 为了加快解析过程 Drain使用了固定深度的解析树 请参见上图 根节点为树的顶层 底层为叶子节点 其他层为
  • BART模型简单介绍

    目录 一 概要 二 深入扩展 2 1 预训练任务 2 2 模型精调 一 概要 BART Bidirectional and Auto Regressive Transformers 模型使用标准的基于Transformer的序列到序列结构
  • Matplotlib入门:等高线图contour

    import matplotlib pyplot as plt import numpy as np def f x y return 1 x 2 x 5 y 3 np exp x 2 y 2 n 256 x np linspace 3 3
  • 2021-05-26

    win10 任务栏图标在文件夹的位置 C Users Administrator AppData Roaming Microsoft Internet Explorer Quick Launch User Pinned TaskBar ww
  • C语言拔高知识——指针的进阶(万字大文超详细)

    在之前的文章中 我已经讲解过了初阶指针的内容 今天就来讲一讲指针的进阶 上篇指针地址 保姆式指针讲解 超详细 适合初学者 指针详解 陈大大陈的博客 CSDN博客 目录 1 字符指针 2 指针数组 3 数组指针 3 1 数组指针的定义 3 2
  • centos7hadoop安装配置

    centos7 Hadoop安装配置 一 前置 1 新建虚拟机 先关闭防火墙 2 配置虚拟机网络 3 安装vim工具 4 设置免密登陆 5 安装同步时间工具 6 修改本计算机名字 二 安装配置JDK和Hadoop 1 通过xftp或者类似软
  • 三极管实现的锁存电路

    电路现象描述 电路上电后状态是万用表输出电压位1 874uV 电路复位输出低电平 当按键S2按下后 万用表测的电压为4 959V 高电平 按键S2松开后 万用表仍然保持输出4 918V 高电平 既实现了高电平的锁存 当按键S1按下后电路万用
  • 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项,求这个和是多少,结果用分数表示出来。分子分母要求互质。

    转载 蓝桥杯真题 18省Ca1 分数 1 1 1 2 1 4 1 8 1 16 每项是前一项的一半 如果一共有20项 求这个和是多少 结果用分数表示出来 类似 3 2 伏城无嗔的博客 CSDN博客
  • 几个常用算法的适应场景及其优缺点(非常好)

    本文主要回顾下几个常用算法的适应场景及其优缺点 机器学习算法太多了 分类 回归 聚类 推荐 图像识别领域等等 要想找到一个合适算法真的不容易 所以在实际应用中 我们一般都是采用启发式学习方式来实验 通常最开始我们都会选择大家普遍认同的算法
  • 关于appcompat_v7的问题

    今天处理了一下之前遗留下来的一个问题 问题现象 1 路径 res values 下的styles xml文件显示下述错误 error Error retrieving parent for item No resource found th
  • spark 访问阿里云OSS

    pom xml