scala读取txt文件忽略第一行([转]scala执行linux命令)

:暂无数据 2026-09-22 00:00:08 0

scala读取txt文件忽略第一行([转]scala执行linux命令)

这篇文章给大家聊聊关于scala读取txt文件忽略第一行,以及[转]scala执行linux命令对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

[转]scala执行linux命令

scala中执行外部命令(scala.sys.process)
发表回复

***隐藏网址***
scala》 import scala.sys.process._
// 只需在结尾用!号,就表示执行外部命令
scala》 val list = "ls -l" !

还可以重定向,甚至可以在java对象与命令之间:
***隐藏网址***
new java.io.File("/tmp/iteye.html") !

注意,重定向必须用 new java.io.File("") 封装,否则会当作命令,比如
scala》 "ls" #》 "/tmp/a" !

将会出错,必须
scala》 "ls" #》 new java.io.File("/tmp/a") !

管道的用法:
scala》 val list = "ls -l" #| "grep P" !

不能在命令表达式中直接用管道, 比如 "ls | grep XXX" 这样不灵,必须用 #| 声明。

***隐藏网址***

//2012.6.15
要把System.getProperties 里的内容重定向到一个文件如何实现?
下面的方法不行,它会将第一个表达式的结果当作命令来执行
scala》 System.getProperties.toString #》 new java.io.File("/tmp/env") !

直接将文字重定向到一个文件,我现在还不知道怎么做。只能变通用写文件的啰嗦方式。

基于linux系统下的eclipse运营scala程序怎么配置环境

最近,笔者在研究一个有关“自然语言处理”的项目,在这个项目中,需要我们用Spark进行编程。而Spark内核是由Scala语言开发的,所以在使用Spark之前,我们必须配置好Scala,而Scala又是运行在JVM上的,所以在配置Scala之前,先要配置好JDK。下面是我个人的一些总结。
我是在Win7系统下开的虚拟机,虚拟机的系统是CentOS7,在创建虚拟机完成后,它会自带一个OpenJDK,我的版本是这样的:
但是因为最开始不了解这个情况,所以我从官网上下载了jdk-8u73-linux-x64.tar.gz,并解压在/Downloads目录下。进入/etc/profile.d目录下,新建path.sh脚本文件,打开并配置环境变量如下图:
在/etc/profile.d目录下,键入source path.sh命令,使配置生效。
然而配置成功后,在控制台中键入java -version,依然会得到第一张图中的信息,后来发现在配置JDK之前,需要卸载系统自带的JDK。
在控制台中键入java,会出现如下图所示的内容:
但是不知道这些,只知道Java开发环境已经配置完毕,所以便开始找对应版本的Scala,我下载的是scala-2.10.5.tgz,并解压在/Downloads目录下。进入/etc/profile.d目录下,打开path.sh文件,配置Scala环境变量,如下图所示:
在/etc/profile.d目录下,键入source path.sh命令,使配置生效。
在控制台中键入scala -version和scala,会分别得到如下两张图中的内容:
关于Scala文件操作中出现的问题
  在各种项目中,我们常常需要用到文件操作,笔者在近期的项目中遇到了一个与文件操作相关的问题。
  在代码实现的过程中,笔者首先定义了一个文件路径:def PATH = "/a/b/c.txt"
  之后开始使用文件操作:val source1 = Source.fromFile(PATH)
  在for循环中,逐行读取文件、处理文件:for(line1 《- source1.getLines()) { // 逐行处理逻辑 }
  在这一轮对文件的各行处理之后,笔者希望再次对处理后的结果进行下一轮处理,所以再次使用了for循环:for(line1 《- source1.getLines())
  但是,结果显示,第二轮操作并没有真正实现。
  经过研究发现,在利用source对象读取完一遍文件后,它便指向了文件的尾部,再次调用for循环时,实际上没有进行任何操作,因为没有读入任何数据。
  解决方法是,重新实例化一个source2:val source2 = Source.fromFile(PATH)
  再次调用for循环:for(line2 《- source2.getLines())
  这样就可以实现再次对文件进行操作了。

spark进入txt文件的命令

spark进入txt文件的命令
1、首先启动spark-shell进入Spark-shell模式:(进入spark目录下后 输入命令 bin/spark-shell启动spark-shell模式)
2、加载text文件(spark创建sc,可以加载本地文件和HDFS文件创建RDD)

val textFile = sc.textFile("file:///home/hadoop/test1.txt") #注意file:后是三个“/”
注意:加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。
3、获取RDD文件textFile所有项(文本文件即总共行数)的计数(还有很多其他的RDD操作,自行百度)

textFile.count() #统计结果显示 1 行
二、在 spark-shell 中读取 HDFS 系统文件“/home/hadoop/test.csv(也可以是txt文件)”(如果该文件不存在, 请先创建),然后,统计出文件的行数:
方法一:
1、加载text文件(spark创建sc,可以加载本地文件和HDFS文件创建RDD)

val textFile = sc.textFile("hdfs:///home/hadoop/test.csv") #注意hdfs:后是三个“/”
注意:加载HDFS文件和本地文件都是使用textFile,区别是添加前缀(hdfs://和file://)进行标识。
2、获取RDD文件textFile所有项的计数

textFile.count() #统计结果显示 1 行
方法二:(Spark shell 默认是读取 HDFS 中的文件,需要先上传文件到 HDFS 中,否则会有“org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: hdfs://localhost:9000/user/hadoop/README.md”的错误。)
1、省去方法一中第一步的命令(1)中的“hdfs://”,其他部分相同,命令如下:

三、编写独立应用程序,读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在, 请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包, 并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令:
1、首先输入:quit 命令退出spark-shell模式:

2、在终端中执行如下命令创建一个文件夹 sparkapp3 作为应用程序根目录:

cd ~ # 进入用户主文件夹
mkdir ./sparkapp3 # 创建应用程序根目录
mkdir -p ./sparkapp3/src/main/scala # 创建所需的文件夹结构
3、在 ./sparkapp3/src/main/scala 下建立一个名为 SimpleApp.scala 的文件(vim ./sparkapp3/src/main/scala/SimpleApp.scala),添加代码如下:

/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array) {
val logFile = "hdfs://localhost:9000/home/hadoop/test.csv"
val conf = new SparkConf().setAppName("Simple Application")
val sc = new SparkContext(conf)
val logData = sc.textFile(logFile, 2)
val num = logData.count()
println("这个文件有 %d 行!".format(num))
}
}
4、该程序依赖 Spark API,因此我们需要通过 sbt 进行编译打包。 ./sparkapp3 中新建文件 simple.sbt(vim ./sparkapp3/simple.sbt),添加内容如下,声明该独立应用程序的信息以及与 Spark 的依赖关系:

name := "Simple Project"
version := "1.0"
scalaVersion := "2.12.10"
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.0.0-preview2"

如何用notepad++支持Scala语法

notepad++应该是目前比较流行的文本器之一,但是最近在开发scala时发现notepad++没有直接支持scala的语法,而且也没有scala的插架可以下载。后来在网上找到了支持scala语法的办法,和大家分享一下。
1,在本地的“SCALA_HOME/misc/scala-tool-support/notepad-plus”路径下会有一个userDefineLang.xml配置 文件。
2,将userDefineLang.xml配置文件复制到“%APPDATA%\Notepad++”路径下(%APPDATA%是系统的环境变量,可以 在cmd窗口下用set命令找到)
3,重启notepad++。
之后就会发现notepad++会将scala程序里的关键字,字符串,注释等用不同的颜色表示出来,在一定程度上有助于对scala代码的理解。

spark dataframe 怎么去除第一行数据

然后我们进入spark-shell,控制台的提示说明Spark为我们创建了一个叫sqlContext的上下文,注意,它是DataFrame的起点。
接下来我们希望把本地的JSON文件转化为DataFrame:
scala》 val df = sqlContext.jsonFile("/path/to/your/jsonfile")df: org.apache.spark.sql.DataFrame =
从控制台的提示可以得知,我们成功创建了一个DataFrame的对象,包含age和name两个字段。
而DataFrame自带的玩法就多了:// 输出表结构df.printSchema()// 选择所有年龄大于21岁的人,只保留name字段df.filter(df("age") 》 21).select("name").show()// 选择name,并把age字段自增df.select("name", df("age") + 1).show()// 按年龄分组计数df.groupBy("age").count().show()// 左联表(注意是3个等号!)df.join(df2, df("name") === df2("name"), "left").show()

scala 什么是隐式类

一、隐式类概念

所谓隐式类: 就是对类增加implicit 限定的类,其作用主要是对类的加强!

如:

implicit class ImpInt(tmp:Int){
def add(tmp2: Int) = tmp + tmp2
}123

class 前面的 implicit ,通过这个隐式类,就可以让Int型数据具有 add 方法。

二、隐式类型实例

import scala.io.Sourceimport java.io.File/**
* 隐式类
* 其作用主要是对类的加强
*
* Created by zhiwang on 2015/7/22.
*/object Implicit_Class {
import Context_Helper._  def main(args: Array) {
println( 1.add(2))  //在当前作用域中寻找 将Int(1) 作为变量的类同时具有add 的方法的类,如有,则执行
println(new File("I:\\aa.txt").read()) //在当前作用域中寻找 将File 作为变量的类同时具有read的方法的类,如有,则执行
}
}object Context_Helper{
implicit class ImpInt(tmp:Int){
def add(tmp2: Int) = tmp + tmp2
}
implicit class FileEnhance(file:File){
def read() = Source.fromFile(file.getPath).mkString
}
}12345678910111213141516171819202122232425262728293031

三、执行过程分析

  • 当 1.add(2) 时,scala 编译器不会立马报错,而检查当前作用域有没有 用implicit 修饰的,同时可以将Int作为参数的构造器,并且具有方法add的类,经过查找 发现 ImpInt 符合要求

  • 利用隐式类 ImpInt 执行add 方法

scala intellij idea编程问题

你这段程序是要放到spark集群上跑吗?
如果是的话,你的val file=sc.textFile("/DataZc_201412191124.txt") 这句话就有问题
系统可能找不到路径,你讲txt换成hdfs路径试试

关于scala读取txt文件忽略第一行和[转]scala执行linux命令的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

scala读取txt文件忽略第一行([转]scala执行linux命令)

本文编辑:admin

更多文章:


elementui 响应式(element-ui 表格元素映射渲染、即 传数字,渲染名称)

elementui 响应式(element-ui 表格元素映射渲染、即 传数字,渲染名称)

大家好,如果您还对elementui 响应式不太了解,没有关系,今天就由本站为大家分享elementui 响应式的知识,包括element-ui 表格元素映射渲染、即 传数字,渲染名称的问题都会给大家分析到,还望可以解决大家的问题,下面我们

2026年9月23日 09:00

pythonweb前端开发(web前端开发要怎样学)

pythonweb前端开发(web前端开发要怎样学)

大家好,关于pythonweb前端开发很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于web前端开发要怎样学的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年9月23日 08:30

python中value函数(python如何无限遍历字典中的value,在不知道字典里面有几层字典的时候)

python中value函数(python如何无限遍历字典中的value,在不知道字典里面有几层字典的时候)

大家好,今天小编来为大家解答以下的问题,关于python中value函数,python如何无限遍历字典中的value,在不知道字典里面有几层字典的时候这个很多人还不知道,现在让我们一起来看看吧!

2026年9月23日 07:10

queue的定义(数据结构之队列的定义及基本运算)

queue的定义(数据结构之队列的定义及基本运算)

大家好,queue的定义相信很多的网友都不是很明白,包括数据结构之队列的定义及基本运算也是一样,不过没有关系,接下来就来为大家分享关于queue的定义和数据结构之队列的定义及基本运算的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2026年9月23日 07:00

lenovo是什么梗(为什么有人说联想是美国的求解,这是个什么梗)

lenovo是什么梗(为什么有人说联想是美国的求解,这是个什么梗)

其实lenovo是什么梗的问题并不复杂,但是又很多的朋友都不太了解为什么有人说联想是美国的求解,这是个什么梗,因此呢,今天小编就来为大家分享lenovo是什么梗的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月23日 06:30

360度网站模板(OKR和绩效管理怎样结合)

360度网站模板(OKR和绩效管理怎样结合)

其实360度网站模板的问题并不复杂,但是又很多的朋友都不太了解OKR和绩效管理怎样结合,因此呢,今天小编就来为大家分享360度网站模板的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月23日 05:20

linux嵌入式编程(怎么学习嵌入式linux)

linux嵌入式编程(怎么学习嵌入式linux)

本篇文章给大家谈谈linux嵌入式编程,以及怎么学习嵌入式linux对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月23日 04:50

FPS是什么 FPS游戏的定义和特点?好玩的FPS单机游戏有哪些

FPS是什么 FPS游戏的定义和特点?好玩的FPS单机游戏有哪些

大家好,fps游戏相信很多的网友都不是很明白,包括FPS是什么 FPS游戏的定义和特点也是一样,不过没有关系,接下来就来为大家分享关于fps游戏和FPS是什么 FPS游戏的定义和特点的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我

2026年9月23日 04:40

vim json格式化(修改jar包中的配置文件)

vim json格式化(修改jar包中的配置文件)

本篇文章给大家谈谈vim json格式化,以及修改jar包中的配置文件对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月23日 04:30

nodejs网站源码(nodejs模块源码能直接使用吗)

nodejs网站源码(nodejs模块源码能直接使用吗)

大家好,nodejs网站源码相信很多的网友都不是很明白,包括nodejs模块源码能直接使用吗也是一样,不过没有关系,接下来就来为大家分享关于nodejs网站源码和nodejs模块源码能直接使用吗的一些知识点,大家可以关注收藏,免得下次来找不

2026年9月23日 03:50

最近更新

热门文章

yoga pro 14s carbon(yoga14s接口类型)
2026-07-03 17:50:01 浏览:5
标签列表