分类: [编程语言]

[Spark] 从字符串创建StructType

    在使用Spark开发的过程中,DataFrame是经常使用的一个数据类型,它比RDD有了更加高级的API,更高的执行效率。     然而,某些情况下,经需要将一个RDD转换为DataFrame,这一步经常需要生成一个StructType来生成DataFrame的schema。直接生成StructType是一个比较麻烦的过程。由于笔者经常使用,便写的一个生成StructType的函数,通过传入的个字段和类型的组合字符串,直接生成StructType,实际使用中确实方便了不少。于是将这个函数记录下来。 函数如下:   def buildStructType(fields:&nb ......

[Spark] Scala集合类详解

    Spark常用Scala语言进行开发,Spark中的RDD处理过程中,经常会与Scala集合进行互相转换。 首先,盗一张图来说明Scala集合类的继承关系 Scala集合类的继承关系 由上图可知,Scala中集合主要分为三大类: 1. Seq,是一组有序的元素。  2. Set,是一组没有重复元素的集合。  3. Map,是一组k-v对。 说明:Scala中的集合类都有两种形式,即可变集合类型的不可变集合类型。可变集合类型即集合中的元素内容、个数是可以修改,而不可变集合类型即集合一旦定义,就不可以进行修改。 Set集合 Scala中的Set集合和 ......

[Spark]Zookeeper3.4.12和Kafka1.0.0的安装及配置

    Spark程序的开发,难免会迁涉到Kafka的有关内容,而Kafka的运行又依赖于Zookeeper。 Zookeeper的安装与部署     官网下载的Kafka程序包里面已经包含的一个Zookeeper程序,在这些文章中,我们没有使用它,而是使用了独立的Zookeeper程序。 先去官网下载Zookeeper程序:zookeeper-3.4.12.tar.gz 与前一篇文章一样,我们也把它解压到opt目录下,执行如下命令: tar -zxvf zookeeper-3.4.12.tar.gz -C /opt 2. 修改/etc/profile文件,增加如下的环境变量: export ZOOKEEPER_HOME= ......

[Spark]Spark2.1.0与Hadoop2.7.5的集群安装及配置

    工作快两个月了,已经大半年没有更新了,决定继续更新博客。续更的第一个系列将会是与目前工作相关Spark系列。第一篇就从Spark的安装与配置开始。 集群的准备 要搭建Spark集群环境,首先要准备集群。笔者这里使用了三台机器,都为debian8系统。 三台机的信息如下: 172.30.232.140 master 172.30.232.138 slave1 172.30.232.139 slave2 这个ip信息需要添加到三节机器的/etc/hosts中去。 三机器的应用规划如下: master  NameNode & Spark master & Spark woker slave1   DataNode & Spa ......

VS2015+OpenCV3.1的配置方法

笔者用的系统是win10,所以这里介绍的方法是基于win10的,至于其它系统配置方法类似。 下载安装OpenCV 首先,我们先到OpenCV官网http://opencv.org/downloads.html 下载3.1版本的安装包。然后双击安装包,进行安装,其实也就是解压。选定目录为我们要解压到的目录,之后点Extract. 配置OpenCV环境变量 选择电脑,右键属性->高级系统设置->环境变量->Path->编辑->添加 C:\MyFile\opencv\build\x64\vc14\bin VS2015下的配置 打开VS2015,新建下个win32控制台程序 包含目录、库目录配置 先把工程设置为De ......

shell文件包含

shell中也可以在一个文件中包含另一个文件,将其中的内容合并到当前文件。用法如下: . file 或者使用 sourse file 注意,第一个命令.之后有空格。被包含的文件可以不需在执行权限。 使用如下: 第一个文件为url.sh url=" https://182.254.208.137" 第二个文件为main.sh: #!/bin/bash . ./url.sh echo ${url} 执行第二个文件,输出结果如下: https://182.254.208.137 可见,第二个文件包含了第一个文件定义的变量。 到此,shell语言也算基本学习完了。 但如果要想真正写好shell脚本,linux命令 ......

shell函数的参数

在shell中调用函数时,可以向其传递有关参数。传递的参数在函数中,通过$n来调用,即第1个参数为$1,第2个为$2,依此类推。函数的声明和不带参数的函数定义相同。如: func() {  echo ${1}  echo ${2}  ... } 注意,最好使用标准的变量表示法,否则$10不能获取第10个参数,需要用${10}。 在前面特殊变量中,我们提到过有关函数的一些特殊变量表示,如$#,$@,$*,$?。看一个例子: #!/bin/bash fun() {  echo "There are $# parameter(s)"  echo &qu ......

shell函数

函数可以让我们将一个复杂功能划分成若干模块,让程序结构更加清晰,代码重复利用率更高。像其他编程语言一样,Shell 也支持函数。Shell 函数必须先定义后使用。一般定义格式如下: fun() {  commands  return value } 上述语句定义一个名为fun的函数,它的作用是执行里面的命令。 也可以在函数名前加function关键字表明这是一个函数。如: function fun() {  commands  return value } shell中的函数是有返回值的,shell默认是将最后一名命令的执行结果作为返回值的,也可以显式的增 ......

shell跳出循环

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,像大多数编程语言一样,Shell也使用 break 和 continue 来跳出循环。 break命令 break命令允许跳出所有循环(终止执行后面的所有循环)。 下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,就要使用break命令。 #!/bin/bash while : do     echo -n "Input a number between 1 to 5: "     read aNum & ......

shell之until语句

和while非常相似,也是判断一个条件,然后决定是否执行循环体。不过,until和while不同,until是如果成立则跳出循环体。一般格式如下:

until <条件>
do
 command
done

此程序会一直执行,直到条件成立。如:

#!/bin/bash
var=0
until [ ! ${var} -lt 5 ]
do
 echo "${var}"
 var=`expr ${var} - 1 `
done

运行结果:

0
1
2
3
4

  1. 1 逆光 孙燕姿
  2. 2 你给我听好 陈奕迅
  3. 3 怎样 戴佩妮
  4. 4 有没有 薛之谦
  5. 5 一个人 韩红
  6. 6 我要快乐 张惠妹
  7. 7 我不难过 孙燕姿
  8. 8 外面的世界 莫文蔚
  9. 9 只剩一分钟 金玟岐
  10. 10 心火 姚贝娜
  11. 11 无底洞 蔡健雅
  12. 12 舍得 王呈章
  13. 13 秘密 蓝又时
  14. 14 学不会 林俊杰
  15. 15 词不达意 林忆莲
  16. 16 可以了 陈奕迅
  17. 17 天空 蔡依林
  18. 18 一个人的冬天 陈楚生
  19. 19 椿 沈以诚
  20. 20 走不出的回忆 任然
  21. 21 谢谢你再见 吉克隽逸
  22. 22 会过去的 梁静茹
  23. 23 青春住了谁 杨丞琳
  24. 24 解脱 李玖哲
  25. 25 梦话 A-Lin
  26. 26 刘惜君
  27. 27 那年 任然
  28. 28 爱过 戴佩妮
  29. 29 真实 张惠妹
  30. 30 失眠的黑夜 吉克隽逸
  31. 31 情话 余佳运
  32. 32 一叶知秋 陈楚生
  33. 33 仰望 杨丞琳
  34. 34 独角戏 许茹芸
  35. 35 保留 黄义达
  36. 36 瞬间 陈一玲
  37. 37 该忘了 郭采洁
  38. 38 远在眼前的你 王心凌
  39. 39 好好过 金池
  40. 40 爱情 万岁爺
  41. 41 木头的心 左颜
  42. 42 离场 李佳薇
  43. 43 没有人不比我快乐 Fine乐团
  44. 44 失落沙洲 徐佳莹
  45. 45 你在,不在 郭采洁
  46. 46 死结 李玖哲
  47. 47 淘汰 陈奕迅
  48. 48 落俗 李荣浩
  49. 49 其实 薛之谦
  50. 50 自我催眠 罗志祥
  51. 51 就这样 李荣浩
  52. 52 我害怕 薛之谦
  53. 53 歌路 刘瑞琦
  54. 54 飞走了 金海心
  55. 55 关键词 林俊杰
  56. 56 底细 杨宗纬
  57. 57 我以为 徐薇
  58. 58 坠落 蔡健雅
  59. 59 陌生人 蔡健雅
  60. 60 败将 陈势安
  61. 61 飘着 孙燕姿
  62. 62 妥协 蔡依林
  63. 63 岁月神偷 金玟岐
  64. 64 记念 萧敬腾
  65. 65 逞强 萧亚轩
  66. 66 需要人陪 王力宏
  67. 67 会痛的石头 萧敬腾
  68. 68 孤独是会上瘾的 吴克群
  69. 69 隐形纪念 蔡淳佳
  70. 70 停了的钟 萧煌奇
  71. 71 终于 张韶涵
  72. 72 懂得自己 杨丞琳
  73. 73 这一路走来 杨宗纬
  74. 74 过我的生活 萧煌奇