是否可以将 Pandas 数据帧从 ORC 文件转换为 ORC 文件?我可以在 parquet 文件中转换 df,但该库似乎没有 ORC 支持。Python 有可用的解决方案吗?如果不是,最好的策略是什么?一种选择是使用外部工具将镶木地板文件转换为 ORC,但我不知道在哪里可以找到它。
我正在使用 Pandas 使用以下命令将数据帧转换为 .parquet 文件:
df.to_parquet(file_name, engine='pyarrow', compression='gzip')
Run Code Online (Sandbox Code Playgroud)
我需要使用 zstandard 作为压缩算法,但上面的函数只接受 gzip、snappy 和 brotli。我试过了 有没有办法在这个函数中包含 zstd?如果没有,我怎么能用其他包做到这一点?我尝试使用zstandard,但它似乎只接受类似字节的对象。
我有这个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”部分之后。
我正在使用 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) 我有这个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)
有没有办法提取两个值并将它们放在两个不同的字段中?