前言
旧版本spark不能直接读取csv转为df,没有spark.read.option(“header”, “true”).csv这么简单的方法直接将第一行作为df的列名,只能现将数据读取为rdd,然后通过map和todf方法转为df,如果csv(txt)的列数很多的话用如(1,2,…,n),即创建元组很麻烦,本文解决如何用旧版spark读取多列txt文件转为df
1、新版
为了直观明白本文的目的,先看一下新版spark如何实现
more >>
最近写了一个用spark连接oracle,然后将mysql所有的表保存到hive中的程序,在本地eclipse里运行没有问题,想在集群上跑一下,看看在集群上性能如何,但是用spark-submit 提交程序时抛出一个异常Exception in thread “main” java.sql.SQLException: No suitable driver,一开始以为spark-submit提交时找不到oracle 驱动jar,折腾了半天才发现是代码问题。
由于在本地没有问题,所以不会想到是代码问题,根据提示想到的是spark-submit找不到oracle驱动,因为maven或sbt仓库里没有oracle驱动,在本地跑的时候,是将oracle驱动下载到本地,然后在eclipse设置build path就可以了。
但是我在spark-submit 里已经通过–jars 加载oracle驱动了:1
spark-submit --class com.dkl.leanring.spark.sql.Oracle2HiveDemo --jars ojdbc5-11.2.0.3.jar spark-scala_2.11-1.0.jar
开始以为自己用法不对,但是上网搜了一下,发现就是这么用的~
然后尝试用–driver-class-path、–driver-library-path等都没成功。
more >>
由于需要学习配置oracle goldengate(ogg),奈何没有oracle环境,所以想自己装一个oracle,搜了一下相关文档,跟着安装了一下,发现oracle安装比mysql安装麻烦多了,而且出现了很多博客上没有提到的错误,所以特此记录一下~
下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html,我下载的是Oracle Database 11g Release 2
(11.2.0.1.0) Linux x86-64,注意File1和File2都要下载
我的虚拟机之前已经配好1
192.168.44.128 ambari.master.com
centos7没有相关安装包可用,可下载pdksh的rpm包1
2wget http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
1 | yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel |
1 | rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel | grep "not installed" |
其中中文系统”not installed” 可能需要替换成中文相关的
more >>
由于Spark机器学习要求输入的DataFrame类型为数值类型,所以如果原始数据读进来的列为string类型,需要一一转化,而如果列很多的情况下一个转化很麻烦,所以能不能一个循环或者一个函数去解决呢。
1 | import org.apache.spark.sql.types._ |
1 | +----+ |
本文是讲如何在centos7(64位) 安装ambari+hdp,如果在装有原生hadoop等集群的机器上安装,需要先将集群服务停掉,然后将不需要的环境变量注释掉即可,如果不注释掉,后面虽然可以安装成功,但是在启动某些服务的时候可能会有异常,比如最后提到的hive启动异常。本文适合系统: RedHat7、CentOS7、Oracle Linux7(都是64位)
注意:centos7中文系统有bug(python脚本中文识别问题),需要使用英文系统。
本文仅作参考(基本每个配置博客都有局限性和坑~),推荐先参考官方文档:
https://docs.hortonworks.com/HDPDocuments/Ambari-2.6.1.5/bk_ambari-installation/content/ch_Getting_Ready.html
以下均在root用户下执行。
建议您将浏览器(自己使用的windows既可)更新至最新的稳定版本
1 | 1.2.1 yum和rpm |
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent:
meta: false
pages: false
posts:
title: true
date: true
path: true
text: false
raw: false
content: false
slug: false
updated: false
comments: false
link: false
permalink: false
excerpt: false
categories: false
tags: true