小编alc*_*cor的帖子

将 Pandas 数据帧与 ORC 文件相互转换

是否可以将 Pandas 数据帧从 ORC 文件转换为 ORC 文件?我可以在 parquet 文件中转换 df,但该库似乎没有 ORC 支持。Python 有可用的解决方案吗?如果不是,最好的策略是什么?一种选择是使用外部工具将镶木地板文件转换为 ORC,但我不知道在哪里可以找到它。

python pandas orc

8
推荐指数
2
解决办法
8965
查看次数

如何使用pandas使用zstandard压缩parquet文件

我正在使用 Pandas 使用以下命令将数据帧转换为 .parquet 文件:

df.to_parquet(file_name, engine='pyarrow', compression='gzip')
Run Code Online (Sandbox Code Playgroud)

我需要使用 zstandard 作为压缩算法,但上面的函数只接受 gzip、snappy 和 brotli。我试过了 有没有办法在这个函数中包含 zstd?如果没有,我怎么能用其他包做到这一点?我尝试使用zstandard,但它似乎只接受类似字节的对象。

python dataframe pandas zstandard

4
推荐指数
2
解决办法
1029
查看次数

如何用jq提取一个json值子串

我有这个json:

{"temperature":"21", "humidity":"12.3", "message":"Today ID 342 is running"}
Run Code Online (Sandbox Code Playgroud)

我想用 jq 来获取这个 json:

{"temp":"21", "hum":"12.3", "id":"342"}
Run Code Online (Sandbox Code Playgroud)

如您所见,我想要做的是提取 ID 号 342 并将其放入具有不同键名的新 json 中。我想我应该使用正则表达式,但我不知道如何在 jq 语法中插入它。

我可以使用基本命令创建另一个 json:

cat old.json | jq '{temp:.temperature,hum:.humidity, id:.message}' > new.json
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用方括号选择子字符串,但我不想使用它们,因为它们不考虑具有不同长度和结构的字符串。我想使用正则表达式,因为我知道 ID 号总是在“ID”部分之后。

bash json jq

3
推荐指数
1
解决办法
4794
查看次数

如何在 pyspark 上使用多核(来自 python 脚本)

我正在使用 pyspark 对 parquet 文件进行一些 sql 查询。我需要使用多个核心,但我没有找到任何有用的信息。这是我正在使用的代码。正如您所看到的,我将核心数量设置为 3,但是当我运行脚本时,我可以在 htop 上看到只有 1 个核心在使用。我该如何解决这个问题?

from pyspark.sql import SparkSession
from pyspark.sql.types import *
spark = SparkSession \
        .builder \
        .appName("Python Spark SQL tests") \
        .config("spark.executor.cores", 3) \
        .getOrCreate()
# Check conf
for item in spark.sparkContext.getConf().getAll():
    print(item)
# Open file and create dataframe
filename = "gs://path/to/file.parquet"
df = spark.read.parquet(filename)
# Create table
df.createOrReplaceTempView("myTable")
# Query
sqlDF = spark.sql("SELECT * FROM myTable")
sqlDF.show()
Run Code Online (Sandbox Code Playgroud)

python pyspark

2
推荐指数
1
解决办法
3200
查看次数

如何提取jq中特定子字符串之后的所有文本

我有这个JSON:

{"item":2, "url":"domain/house/23/bedroom"}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用jq获取此新的JSON:

{"item":2, "number":"23", "room":"bedroom"}
Run Code Online (Sandbox Code Playgroud)

可以在jq中这样做吗?第一步,我尝试使用捕获功能来捕获“ / house /”之后的子字符串,但是它不起作用:

cat myjson.json | jq -c '{item:.item,substring:(.url | capture("/house/.*").substring)}'
Run Code Online (Sandbox Code Playgroud)

有没有办法提取两个值并将它们放在两个不同的字段中?

json jq

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

标签 统计

python ×3

jq ×2

json ×2

pandas ×2

bash ×1

dataframe ×1

orc ×1

pyspark ×1

zstandard ×1