最近钻研较为繁琐的按时间合并问题,接着先前的经验(
【总结】PySpark的DataFrame处理方法:增删改差),对于按某几列加按周groupby的需求,pyspark的dataframe可以这么实现:
(合法的时间间隔可以是这样‘1 second’, ‘1 day 12 hours’, ‘2
minutes’。支持的时间类型如下:‘week’, ‘day’, ‘hour’, ‘minute’, ‘second’,
‘millisecond’, ‘microsecond’. )
from pyspark.sql.functions
import window
win_monday =
window('col1', '1 week',
startTime='4 day')
grouped_data =
df.groupBy([df.col2, df.col3, df.col4, win_monday])
|
在使用SpringMVC框架的时候,在java程序里面直接用中文字符串返回String类型,会出现中文乱码。而出现乱码还分2种情况,一种是POST请求页面的乱码情况,一种是GET请求页面的乱码情况。
POST情况要想全局处理非常简单,只需要在Spring框架的配置xml文件中添加或修改以下代码即可:
<mvc:annotation-driven >
<!-- 消息转换器,添加对文字编码的全局处理,解决中文返回问号的毛病 -->
<mvc:message-converters
register-defaults="true">
<bean
class="org.springframework.http.converter.StringHttpMessageConverter">
|
(2017-06-29 16:35)
标签:
mysql
mysqldump
导出
数据库
|
分类:
技巧和技术
|
注意,加-d并不是指定数据库,而是只导出结构不导出数据
1.导出结构不导出数据
mysqldump -d 数据库名 -uroot -p > xxx.sql
2.导出数据不导出结构
mysqldump -t 数据库名 -uroot -p > xxx.sql
3.导出数据和表结构
mysqldump 数据库名 -uroot -p > xxx.sql
4.导出特定表的结构
mysqldump -uroot -p -B数据库名 --table 表名 > xxx.sql
#mysqldump [OPTIONS] database [tables]
——————————————————————————
导入数据:
mysql -u username -ppassword schema_name <
somefile.sql
清空某表数据
TRUNCATE TABLE tablename;
更新表:
UPDATE sometable SET some_col='somevalue1' WH
cmd下面先用命令:
pip install mysql-python
如果报错,直接安装编译后的版本吧:
DBUtils的安装,直接使用命令:
pip install DBUtils
—————————————————————————————————————————————
当在python代码中使用MySQLdb的时候可能会出现“明明执行了插入,但是查看数据库的时候,却发现没有记录”的问题。这就需要我们在python语句之间多加一些代码:
$ sudo systemctl status mysql.service
● mysql.service - MySQL
Community Server
Loaded: loaded
(/lib/systemd/system/mysql.service; enabled; vendor preset:
enabled)
Active: active
(running) since Mon 2017-05-22 23:09:47 PDT; 12s ago
Process: 5967
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
(code=exited, status=0/SUCCESS)
Process: 5958
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited,
status=0/SUCCESS)
Main PID: 5966
(mysqld)
CGroup:
/system.slice/mysql.service
└─5966 /u
(2017-04-17 14:07)
起因是写好的一程序,放到服务器上跑就失败了。搜索网上半天没找着原因。
pandas有个库可以让一时间序列按周(月或年等)汇总,如进行数据分析的时候,需要将不均匀的时间戳数据按照月来汇总排列,那么就需要用到resample函数。使用resample有个要求,就是dataframe的index要为时间序列类型的。一般的index不是从0到n,就是字符串,那样的话没办法resample。所以我们要这么转换,随便取一列,或者从别的地方给它安插一列时间类型的index,构成时间序列:
time_series = data[['DATE', 'QUANTITY']]
time_list = pd.to_datetime(time_series['DATE']) #
转换序列为时间序列
time_series = time_series.set_index(time_list) #
设置时间序列作为行标签
if pd.__version__ >= '0.18.0':
time_series =
time_series.resample('W-SUN').sum()
else:
time_series = time_series.resample('W-SUN',
how='sum')
time_series = tim
|
(2017-04-05 14:47)
其实不需要JEditorPane,Java提供的JTextPane本身就可以实现文字、图片同时插入,并发送。这里界面设计与功能实现分成2个文件来写。界面是用Netbeans画的,里面有2个JTextPane和2个JButton,文件为ImageTextPaneForm.java。功能实现的类为ImageTextPaneController.java:
ImageTextPaneController.java
import
java.awt.event.ActionEvent;
import
javax.swing.ImageIcon;
import
javax.swing.JButton;
import
javax.swing.JFileChooser;
import
javax.swing.JFrame;
import
javax.swing.JTextPane;
import
javax.swing.text.BadLocationException;
|
【问题】Spark在windows能跑集群模式吗?
我认为是可以的,但是需要详细了解cmd命令行的写法。目前win下跑spark的单机模式是没有问题的。
【关键点】spark启动机制容易被windows的命令行cmd坑
1、带空格、奇怪字符的安装路径,cmd不能识别。最典型的坑就是安装在Program
Files文件夹下的程序,因为Program和Files之间有个空格,所以cmd竟不能识别。之前就把JDK安装在了Program
Files下面,然后启动spark的时候,总是提示我找不到JDK。我明明配置了环境变量了啊?这就是所谓了《已经配置环境变量,spark
仍然找不到Java》的错误问题。至于奇怪的字符,如感叹号!,我经常喜欢用来将重要的文件夹排在最前面,但cmd命令提示符不能识别。
2、是否需要配置hadoop的路径的问题——答案是需要用HDFS或者yarn就配,不需要用则不需配置。目前大多数的应用场景里面,Spark大规模集群基本安装在Linux服务器上,而自己用windows跑spark的情景,则大多基于学习或者实验性质,如果我们所要读取的数据文件从本地win
'D:\Program files\Anaconda2\python.exe'
C:/Users/PycharmProjects/helloworld/spark1.py SPARK_HOME not in
os.environ SPARK_JARS_DIR already set== D:\!spark-1.6.2\jars 'set
PYTHONHASHSEED=0' 'run spark-class2.cmd' ϵͳ�Ҳ���ָ����·���� Failed
to find Spark assembly JAR. You need to build Spark before running
this program. Traceback (most recent call last): File
'C:/Users/PycharmProjects/helloworld/spark1.py', line 70, in conf =
SparkConf().setAppName(APP_NAME) #
.setMaster('spark://10.120.21.80:8032') File 'D:\Program
files\Anaconda2\lib\site-packages\pyspark\conf.py', line 104, in
__init__ SparkContext._ensure_initialized() File 'D:\Program
files\Anaconda2\lib\site-packages\pyspark\context.py', line 245, in
_ensure_initialized SparkContext._gateway = gateway or
launch_gateway() File 'D:\Pr
有可能是namenode配置问题,用停止命令发觉如下情况
$ sbin/stop-dfs.sh
Stopping namenodes on [localhost]
localhost: no namenode to stop
localhost: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
最简单的解决办法是重新格式化hdfs:
master2@ubuntu:~/hadoop-2.7.3$ bin/hdfs namenode -format
执行start-all.sh的时候发现JPS一下namenode没有启动
每次开机都得重新格式化一下namenode才可以
其实问题就出在tmp文件,默认的tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失
于是我们得重新配置一个tmp文件目录
首先在home目录下建立一个hadoop_tmp目录
sudo
mkdir ~/ha