我正在尝试使用正则表达式和 Pyspark 中的以下脚本提取某些邮政编码的区域:
postcodes.select("raw_postcode", regexp_extract('raw_postcode', '^[a-zA-Z]+\d\d?[a-zA-Z]?', 1).alias("area")).show(40, False)
我得到以下异常:
Py4JJavaError: An error occurred while calling o562.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 17.0 failed 4 times, most recent failure: Lost task 0.3 in stage 17.0 (TID 44, ip-172-31-100-215.eu-west-1.compute.internal, executor 1): java.lang.IndexOutOfBoundsException: No group 1
at java.util.regex.Matcher.group(Matcher.java:538)
Run Code Online (Sandbox Code Playgroud)
我已经单独在 Python 中尝试了正则表达式并且它有效,但是它在 pyspark 中给我带来了麻烦。帮我查一下原因。
我有一个包含此内容的csv文件:
col1, col2, col5
1, 1, 1
2, 2, 2
3, 3, 3
4, 4, 4
Run Code Online (Sandbox Code Playgroud)
我需要在文件的第三个位置添加一个带有标题但是空值的列.
col1, col2, col3, col4
1, 1, , 1
2, 2, , 2
3, 3, , 3
4, 4, , 4
Run Code Online (Sandbox Code Playgroud)
有没有办法使用像cat,sed,awk或cut这样的Linux命令之一?
我知道有cut可以通过列cut -d,-f1,2,3 file1> file2修改文件.但似乎没有添加自定义列的选项.
任何帮助将非常感激.
您可以解决此错误吗:df.isin函数在做什么错?
cursor = con.cursor()
cursor.execute("""SELECT distinct date FROM raw_finmis_online_activation_temp""")
existing_dates = [x[0] for x in cursor.fetchall()]
if df[df['date'].isin(existing_dates)]:
print "Yes it's in there"
else:
print "N"
Run Code Online (Sandbox Code Playgroud)
这给了我这个错误:
ValueError:DataFrame的真值不明确。使用a.empty,a.bool(),a.item(),a.any()或a.all()。
我已经在DAG中添加了新任务,它需要回填它们。目前,当我运行airflow backfill
它时,它将运行所有任务(新任务和旧任务),而我想忽略已经成功的旧任务。
有什么方法可以在回填中跳过具有成功状态的任务?
我想使用该命令将 Databricks 上的 Delta 表中的数据加载到 Snowflake 上的表中MERGE INTO
。
目标是 Databricks 上的 Delta 表中的记录数量与 Snowflake 上的表中的记录数量看起来相同。
发生的问题是,由于 Delta Lake(S3 路径)有多个版本,Snowflake 会查询重复记录。
如何才能只读取最新版本的 Delta Lake?
MERGE INTO myTable as target USING (
SELECT
$1:DAY::TEXT AS DAY,
$1:CHANNEL_CATEGORY::TEXT AS CHANNEL_CATEGORY,
$1:SOURCE::TEXT AS SOURCE,
$1:PLATFORM::TEXT AS PLATFROM,
$1:LOB::TEXT AS LOB
FROM @StageFilePathDeltaLake
(FILE_FORMAT => 'sf_parquet_format')
) as src
ON target.CHANNEL_CATEGORY = src.CHANNEL_CATEGORY
AND target.SOURCE = src.SOURCE
WHEN MATCHED THEN
UPDATE SET
DAY= src.DAY
,PLATFORM= src.PLATFORM
,LOB= src.LOB
WHEN NOT MATCHED THEN
INSERT …
Run Code Online (Sandbox Code Playgroud)