小编nxl*_*xl4的帖子

在Impala中将YYYYMMDD字符串转换为日期

我在Impala中使用SQL来编写此查询.我正在尝试将以YYYYMMDD格式存储的日期字符串转换为日期格式,以便运行如下查询:

SELECT datadate, 
       session_info
FROM database
WHERE datadate >= NOW() - INTERVAL 5 DAY
ORDER BY datadate DESC;
Run Code Online (Sandbox Code Playgroud)

由于>= NOW() - INTERVAL 5 DAY代码不能与YYYYMMDD字符串一起使用,我想找到一种方法将其转换为可用于此类查询的日期格式.我的想法是它应该看起来像这样(基于关于其他SQL查询编辑器的类似问题),但它在Impala中不起作用:

SELECT datadate,
       session_info,
       convert(datetime, '20141008', 102) AS session_date
FROM database
WHERE session_date >= NOW() - INTERVAL 5 DAY
ORDER BY session_date DESC;
Run Code Online (Sandbox Code Playgroud)

任何人都知道在Impala中如何做到这一点?

编辑:

我终于找到了解决问题的有效方法.没有尝试使用Impala的配置CASTCONVERT在Impala中工作,但是下面的查询解决了问题并且完全可操作,允许对包含字符串值的列执行日期数学运算:

SELECT datadate,
       session_info
FROM database
WHERE datadate >= from_unixtime(unix_timestamp(now() - interval 5 days), 'yyyyMMdd')
GROUP BY datadate
ORDER BY datadate DESC;
Run Code Online (Sandbox Code Playgroud)

sql hadoop impala

9
推荐指数
2
解决办法
3万
查看次数

在 Juypyter Notebook 中将 PySpark Dataframe 显示为 HTML 表

我试图在 Jupyter Notebook 中将 PySpark 数据框显示为 HTML 表,但所有方法似乎都失败了。

使用此方法显示文本格式的表格:

import pandas
df.toPandas()
Run Code Online (Sandbox Code Playgroud)

使用此方法将 HTML 表显示为字符串:

df.toPandas().to_html()
Run Code Online (Sandbox Code Playgroud)

这将打印未解析的 HTML 更漂亮,但它不会解析为表格:

print(df.toPandas().to_html())
Run Code Online (Sandbox Code Playgroud)

并且,所有这些

from IPython.display import display, HTML

HTML(df.toPandas().to_html())
print(HTML(df.toPandas().to_html()))
display(HTML(df.toPandas().to_html()))
Run Code Online (Sandbox Code Playgroud)

只需打印该对象描述:

<IPython.core.display.HTML object>
Run Code Online (Sandbox Code Playgroud)

我还可以尝试其他想法吗?

python pandas pyspark jupyter-notebook

8
推荐指数
1
解决办法
7805
查看次数

从CSV创建表,其值包含用引号括起来的逗号

我正在尝试使用我上传到HDFS目录的CSV在Impala中创建一个表.CSV包含用引号括起来的逗号的值.

例:

1.66.96.0/19,"NTT Docomo,INC.","Ntt Docomo",9605,"NTT DOCOMO, INC."
1.66.128.0/17,"NTT Docomo,INC.","Ntt Docomo",9605,"NTT DOCOMO, INC."
1.67.0.0/17,"NTT Docomo,INC.","Ntt Docomo",9605,"NTT DOCOMO, INC."
1.67.128.0/18,"NTT Docomo,INC.","Ntt Docomo",9605,"NTT DOCOMO, INC."
1.67.192.0/19,"NTT Docomo,INC.","Ntt Docomo",9605,"NTT DOCOMO, INC."
Run Code Online (Sandbox Code Playgroud)

帕拉的文件说,这可以用一个来解决ESCAPED BY条款.这是我目前的代码:

DROP TABLE IF EXISTS GeoIP2_ISP_Blocks_IPv4;

CREATE TABLE GeoIP2_ISP_Blocks_IPv4 (
  network STRING
 ,isp STRING
 ,organization STRING
 ,autonomous_system_number STRING
 ,autonomous_system_organization STRING
  )
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ESCAPED BY '\\'

LOCATION 'hdfs://.../GeoIP2_ISP_Blocks_IPv4/';

INVALIDATE METADATA GeoIP2_ISP_Blocks_IPv4;

LOAD DATA INPATH 'hdfs://.../GeoIP2_ISP_Blocks_IPv4/' 
INTO TABLE GeoIP2_ISP_Blocks_IPv4;
Run Code Online (Sandbox Code Playgroud)

我也试过使用这个ESCAPED BY '"'条款.在这两种情况下,Impala都使用引号中的逗号并将其用作分隔符,将值拆分为两列. …

sql hadoop impala

6
推荐指数
1
解决办法
5512
查看次数

使用 FFmpeg 将带有 A/52 B 音频(又名 E-AC3)的 MKV 转换为 AAC 时出现问题

我有许多 MKV 文件(每个 VLC)使用 A/52 B(又名 E-AC3)音频编解码器进行编码。我想将它们转换为 AAC,但我在使用 FFmpeg 时遇到困难。我正在运行的命令是:

ffmpeg -hwaccel auto -i original_file.mkv -y -c:v copy -c:a aac output_file.mkv
Run Code Online (Sandbox Code Playgroud)

该命令完成且没有错误。但是,生成的文件在播放时没有音频。FFmpeg的输出如下:

ffmpeg version 4.2.2-1ubuntu1 Copyright (c) 2000-2019 the FFmpeg developers
  built with gcc 9 (Ubuntu 9.3.0-3ubuntu1)
  configuration: --prefix=/usr --extra-version=1ubuntu1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame …
Run Code Online (Sandbox Code Playgroud)

ffmpeg aac

5
推荐指数
1
解决办法
2859
查看次数

标签 统计

hadoop ×2

impala ×2

sql ×2

aac ×1

ffmpeg ×1

jupyter-notebook ×1

pandas ×1

pyspark ×1

python ×1